您的位置:首页 > Web前端 > JavaScript

JavaScript函数声明、变量声明及赋值的优先级问题

2016-01-29 14:36 453 查看
在JavaScript语言中,函数声明和变量声明(注意:只有声明部分会被提升,赋值部分不会被提升)会被预解析,被浏览器引擎提升到当前作用域的最顶端,如下所示:

<span style="font-size:18px;">var a = 1;
function func(){
alert(a);
var a = 2;
}
func();</span>


代码会显示undefined,因为 var a=2; 的声明部分会被解析器提升到func函数作用域的最顶部,所以上面的代码和下面是一样的:

<span style="font-size:18px;">var a = 1;
function func(){
var a;//自动被赋值为undefined
alert(a);
a = 2;
}
func();</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: