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

标签 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 代码?

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

最佳答案

函数总是被“拖到顶部”。所以你的变量总是会晚于函数的加载。尝试加载函数上方的变量,它就会起作用。这就是所谓的提升。

关于javascript - 解析没有变量赋值的函数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45938753/

相关文章:

c - 当没有可返回的有效值时,在 C 中该怎么办?

javascript - 在 Couchdb ( iriscouch ) POST 请求中添加新文档失败,状态为 500

javascript - 如何将字符串作为文件上传到 Google 云端硬盘?

javascript - 如何使用 JQuery 删除动态创建的元素?

python - 使用变量调用类的属性

javascript - 自动覆盖 JavaScript 函数中的上下文

javascript - 移动 DOM 元素后 KnockOut 绑定(bind)中断

javascript - 如何使 "ActiveXObject(' SAPI.SpVoice')"在 Firefox 中工作

jQuery:插件方法,我如何将东西传递给它们?

c++ - 为什么第一个程序不起作用但第二个程序有效?第二,为什么输出是它给出的?