var functionExpressionA = function(){
return x+1;
};
var functionExpressionB = function(){
return y+1;
};
var y=10;
var x=20;
functionExpressionB(); //returns 11
functionExpressionA(); //returns 21
我想澄清一下如何在上面的示例中提升和解析此代码。
我的理解是变量名var y
和var x
已被提升。但是,他们的作业10
和20
不会被悬挂。
如果以上情况属实,那么这个Javascript片段实际上是如何被浏览器解析的?
对包含变量的函数表达式特别感兴趣,该变量在解析时(因为仅提升变量名称)是undefined
答案 0 :(得分:3)
功能总是被拖到顶部'。因此,您的变量将始终晚于函数加载。尝试在函数上方加载变量,它将起作用。它被称为吊装。