解析没有变量赋值的函数表达式

时间:2017-08-29 12:06:59

标签: javascript function

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 yvar x已被提升。但是,他们的作业1020 不会被悬挂。

如果以上情况属实,那么这个Javascript片段实际上是如何被浏览器解析的?

对包含变量的函数表达式特别感兴趣,该变量在解析时(因为仅提升变量名称)是undefined

1 个答案:

答案 0 :(得分:3)

功能总是被拖到顶部'。因此,您的变量将始终晚于函数加载。尝试在函数上方加载变量,它将起作用。它被称为吊装。