例子1:
```var color="blue"
function changeColor(){
for(var i=0;i<3;i++){
var num=0;
num=i
}
alert(num)
}
console.log(num)```
在这里alert(num)正常输出num的值,因为javascript没有块级作用域,alert()不会访问不到num(但在c,c++,Java中有块级作用域),num仍然作为一个变量被写入changeColor执行环境对象,而console.log(num)打印出undefined,因为changeColor执行环境在执行完后,环境销毁,num变量不存在
例子1:
var color="blue";
function changeColor(){
for(var i=0;i<3;i++){
num=i;
}
alert(num)
}
console.log(num)//console打印出num值,使用var的变量被添加到最近的执行环境中,不使用var添加到全局环境中
网友评论