JavaScript 中变量可以是数字,字符串,布尔等任何类型。JavaScript 变量要用一个变量名表示,变量名除了不要用数字开头和JavaScript
保留字或者关键字就可以,可以使用英文,数字,$ 和_ 组合。
一、局部变量
另外, 变量名之前要带 var 来申明变量,否则该变量就是全局变量。用var 申明的变量只可以在函数内部使用。
例如:
var i = 12;
console.log(i)//12
function myfun(){
var i = "我就是我";
console.log(i)//我就是我
}
myfun();
二、全局变量
即使是相同的变量名也不会有冲突,但是如果不用var 就是全局变量了。
例如:
i = 12;
function myfun(){
i = "我就是我";
console.log(i)
}
myfun()//我就是我
console.log(i)//我就是我
变量i 已经在函数中被字符串替代。
三、严格模式
这其实是一个JavaScript 设计的缺陷来的,所以后来ECMA推出了strict模式来解决这个问题。在代码的开始部分加入字符串“use strict”,支持strict模式的浏览器就会在严格模式上执行JavaScript代码,强制使用var申明变量,否则就会报错,告诉程序员哪里没有出了问题。未支持strict模式的浏览器就是只是把“use strict”编译成了一句字符串,没有任何意义。不过现在大多数浏览器都支持strict模式。
例如:严格模式下的全局变量不被允许。
"use strict"
i = 12;
function myfun(){
i = "我就是我";
console.log(i)
}
myfun()//我就是我
console.log(i)//我就是我
四、变量的状态
变量可以区分未静态变量和动态变量。
动态变量是是用var 申明的变量,可以是任意类型的变量,比较灵活。在赋值过程中变量就不断根据所赋值的数据类型变化而变化。
例如:
var a = "hello";
console.log(typeof(a))//string
a = 1212;
console.log(typeof(a))//number
console.log(a)//1212
静态变量的数据类型是已经定好了的,不可变得,如果改变数据类型就会出错。
例如:
int a = 12;
a = "123"
不能把字符串“123”赋值给整形a。