js变量作用域白话级讲解

来源:互联网 发布:国家注册审核员 知乎 编辑:程序博客网 时间:2024/05/16 10:56
var scope="global";
function f(){
 console.log(scope);
 var scope="local";
 console.log(scope);
}
由于javascript没有区域作用域,只有函数作用域。所以上面代码等价
于如下,由于变量重定义所以内部变量会覆盖外部变量
var scope="global";
function f(){
 var scope="local";
 console.log(scope);
 console.log(scope);
}
虽然函数变量覆盖了外部变量,而且被定义在函数开始处,但是给变量赋值
是在所写语句处,所以这样就导致scope变量被定义了而未赋值。
原创粉丝点击