javascript - 为什么我可以引用一个尚未在 Javascript 中定义的变量?

标签 javascript

在此处创建函数 foo 时,我引用了一个尚未声明的变量 fromTheFuture。这确实可以按预期工作,但是为什么?它被认为是危险的或不良的做法吗?

var foo = function(x) {
  return fromTheFuture * x;
};

var fromTheFuture = 5;

console.log(foo(10));

我认为这非常方便,如果您有多个函数想要以循环方式相互使用 - 无需在方法开头使用 var 声明它们。

最佳答案

在调用 foo 时,定义了 fromTheFuture。更准确地说,由于提升,您的代码本质上是:

var foo, fromTheFuture;
foo = function(x) {return fromTheFuture*x;};
fromTheFuture = 5;
console.log(foo(10));

如果您在 fromTheFuture=5 之前调用 foo(10),您将得到 NaN

关于javascript - 为什么我可以引用一个尚未在 Javascript 中定义的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331919/

相关文章:

javascript - 如何将一些包含 [$index] 的字符串传递到我的指令中?

javascript - 如何验证数字是否为整数

javascript - 如何在 Canvas 中创建障碍

javascript - 使用 ember-data 规范化嵌入记录

javascript - Dojo 推迟重试直到成功

javascript - ASP.NET MVC4 网络优化不会在普通互联网应用程序上缩小或添加缓存破坏器

javascript - Ext js获取HTML元素的值

javascript - 查找然后替换类和文本到按钮

c# - Asp.net - 显示脚本警报时新窗口正在关闭

javascript - "Submit is not a function"在没有其他提交输入的动态创建表单中的 Firefox 错误