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 代码?
对包含变量的函数表达式特别感兴趣,该变量在解析时(因为仅提升变量名称)未定义
最佳答案
函数总是被“拖到顶部”。所以你的变量总是会晚于函数的加载。尝试加载函数上方的变量,它就会起作用。这就是所谓的提升。
关于javascript - 解析没有变量赋值的函数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45938753/