ECMAScript的变量是松散类型的,即可以用来保存任何类型的数据。
var操作符定义的变量是该定义语句所在作用域的局部变量。省略var定义的变量是全局变量。
未经初始化的变量会保存undefined值,初始化后的变量也只是保存一个值,并不会标记数据类型。可以在修改值的同时修改数据类型。
用一条语句可以声明和定义多个变量,用逗号分隔,如
var name="Xiaoming",age=19;
或者:
var name="Xiaoming",
age=19;
在JS中定义全局变量的方法:1).在function外定义变量;2).不用var 声明,直接定义,即隐式声明全局变量(不推荐),这种方法即使在函数内部定义,也为全局变量,但函数未执行就未定义;3).用windows.variableName定义全局变量,调用时建议写上windows.variableName(也可不写)。
全局变量的优点:可减少变量个数,可减少由于实际参数和形式参数的数据传递带来的时间消耗。
全局变量的缺点:1).全局变量存储在静态存贮区,程序开始运行时为其分配内存,程序结束时释放内存,与局部变量的动态分配、动态释放相比,生存期较长,因此过多的全局变量会占用较多的内存单元。2).全局变量破坏了函数的封装性能。函数就像一个黑匣子,一般通过函数参数和返回值进行输入输出,函数内部实现相对独立。全局变量破坏了这种独立性,使函数对全局变量产生依赖,同时也降低了函数的可移植性。3).全局变量降低代码可读性,由于多个函数都可能使用和改变全局变量,所以对程序调试和查错很不利。