隐式声明全局变量,在没有关键字var情况下 默认为全局变量如下:
function hello(){ str = "123"; //全局变量 } function hello(){ var a = b = "12"; // a 局部变量,b全局变量 } function hello(){ var a , b; a = b = "12"; // a b 局部变量 } var a = "12"; (function (){ alert(a); //undefined 变量声明是在函数执行之上, 全局变量a重新声明为局部变量 这里等同于 == var a; alert(a); var a; a = "123"; alert(a); // 123 })();
隐式全局变量和明确定义的全局变量的区别:
1. var 明确定义的隐式全局变量不可以用delete删除。
2. 无var隐式全局变量可以用delete删除。
var global_var = 1; global_novar = 2; // 反面教材 (function () { global_fromfunc = 3; // 反面教材 }()); // 试图删除 alert(delete global_var); //false alert(delete global_novar); //true alert(delete global_fromfunc); /true // 测试该删除 alert(typeof global_var); //number alert(typeof global_novar); //undefined alert(typeof global_fromfunc); //undefined
变量定义单var形式
function hello(){ var a = 0, b = 1, c= 2, str= "123"; }