javascript - 来自未定义检查的引用错误

标签 javascript

<分区>

我在未定义的检查中得到了令人困惑的结果。

在我的内存中,根据多个答案( 1 2 3 4 5 ),以下代码应该可以工作。

// bar is not defined

if (bar) console.log("should not execute");

if (!bar) console.log("should execute");

var foo = bar || 'foo'; // should assign 'foo' but is undefined

但是在 Chrome(版本 63.0.3239)和 Firefox Nightly(版本 60.0a1)上我得到了一个
未捕获的 ReferenceError:未定义栏

这发生在没有严格模式的控制台和链接脚本上

// linked-script.js
(function() {
   if (bar) console.log("should not execute");
   if (!bar) console.log("should execute");
   var foo = bar || 'foo';
})();

// index.html
<script type="text/javascript" src="linked-script.js"></script>

我错过了什么?

最佳答案

问题是 bar 不等于 undefined。它根本没有定义。变量不存在。代码崩溃是因为您试图读取一个不存在的变量。

var bar;

// bar is not defined

if (bar) console.log("should not execute");

if (!bar) console.log("should execute");

var foo = bar || 'foo'; // foo is now 'foo'

关于javascript - 来自未定义检查的引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49048944/

相关文章:

javascript - Jquery-Mobile:将数据附加到非 native 选择选项菜单

javascript - 新对象()未定义?

javascript - 在 knockout 应用程序中使用 setInterval 进行轮询实现?

javascript - 使用 ES6Modules 将 * 导出为 *

javascript - Material-UI 中的 Mask Textfield 组件

javascript - 我们如何跟踪使用嵌入式 JavaScript 标记转换的广告的点击次数?

javascript - $ ('html' ).click()...除一个元素外的任何地方

javascript - 编译 HTML 后替换回车符 (?)

javascript - 如何修复 wp super 缓存错误消息?

javascript - Ember.js:内部引导过程中的 "Undefined is not a function"