Variable Declaration
2018-04-15 本文已影响0人
不高兴325
1. 重复的声明
如果声明时未指定初始值,那么它的初始值就是 undefined。
[JavaScript]
var i;
console.log(i); //=> "undefined"
2. 重复的声明
使用 var 语句重复声明变量是合法且无害的。
[JavaScript]
var scope = "global";
function foo(){
var scope = "local";
return scope;
}
foo(); //=> "local"
console.log(scope); //=> "global"
3. 遗漏的声明
ECMAScript5 严格模式中,给一个没有声明的变量赋值也会报错。然后从历史上讲,在非严格模式下,如果给一个未声明的变量赋值,JavaScript实际上会给全局对象创建一个同名属性(全局变量)。这意味着你可以侥幸不声明全局变量,但这不是一个好习惯。
[JavaScript]
scope = "global"; //声明一个全局变量(未用var关键字声明)
function checkScope() {
scope = "local"; //修改了全局变量
myScope = "my local"; //显示地声明了新的全局变量
return [scope, myScope];
}
checkScope();
console.log(scope); //=> "local"
console.log(myScope); //=> "my local"