ECMAScript中的变量是松散类型的,所谓的松散类型就是可以用来保存任何类型的数据。
var example; // 只定义变量
这一行代码,使用关键字var定义了一个名为example的变量,example这个变量可以用来保存任何类型的值。
在上面的代码中,只是定义了一个变量,并没有进行赋值,像这种未经过初始化的变量,它的值是undefined。
var example = 1; // 使用var声明变量example,同时直接初始化变量。
局部变量和全局变量:
使用var关键字定义的变量,它是只在定义这个变量的作用域中起作用的局部变量。例如:
function test(){
var name = 'Tom';
}
在上面的代码中,我在函数test()中使用var关键字定义了一个name变量,那么这个变量name就是一个局部变量,它只在test()函数体中起作用,当test()函数被调用时,就会创建变量name,并为其赋值“Tom”,在退出这个函数后,name就会被销毁。
如果想要定义一个全局变量,可以在变量定义时省略var关键字:
function test(){
name = 'Tom';
}
上面的代码中,定义变量时省略了var,name就是一个全局变量。因此,只要调用过一次test()函数后,变量name就有了定义,之后就可以在函数外部任何地方访问到全局变量name。
因为在局部作用域中定义的全局变量难以维护,一般不建议省略var关键字来定义全局变量。