Javascript的变量作用域
原来以为javascrip的变量是申明后生效
但是javascript的变量作用域是函数级别的
例子如下
var global = "test";
function testvar () {
console.log(global);
var global = "data";
}
testvar();
在执行以上例子的时候最终输出的内容为undifined;
从这个例子中得出变量的作用域是函数级别的,也就说不管你在函数的第几行声明变量,作用域都是整个函数体。
这个例子的代码相当于
var global = "test";
function testvar () {
var global; //未初始化
console.log(global);
global = "data";
}
testvar();
因此良好的编程习惯是所有的变量初始化都需要写在函数的开头。
再看一个例子
for(var i = 0; i < 10; i++) ; console.log(i);
最后代码显示的内容是9,也就是说i这个变量的作用域是函数级而不是块级的。
浙公网安备 33010602011771号