javascript - 这个 Javascript 代码片段如何打印 'false' ?

标签 javascript

看下面的代码,我不明白 (typeof a !== 'undefined') 是如何工作的。我知道变量“a”不在 IIFE 内部,所以它在外部是未定义的。但是我不明白代码是如何打印出 'false'

(function(){
   var a = 3;   
})();

console.log("a defined? " + (typeof a !== 'undefined'));
//prints false- but how and why?

如果我删除 typeof 并只执行

console.log("a defined? " + (typeof a !== 'undefined')); 
Uncaught ReferenceError: a is not defined

我收到一条错误消息,提示 Uncaught ReferenceError: a is not defined。那么,当存在 typeof 时它如何运行良好 - 而当 typeof 被删除时它会出错?这是我的困惑

最佳答案

如您所说,a 不存在于 IFFE 之外。因此,它在不同的范围内是未定义的。

//Enter the following in your console.
typeof a   // --> "undefined"

(function(){
   var a = 3;   
})();

typeof a   // --> "undefined" (Still)

当您检查类型时可能会出现问题,并且可能会误解 bool 值评估(这是一种双重否定)。 typeof a === 'undefined'true,因此 typeof a !== 'undefined'false.

关于javascript - 这个 Javascript 代码片段如何打印 'false' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41493540/

相关文章:

javascript - 如果用户的浏览器早于 : IE 10, Firefox 39、Chrome 39、Opera 8,则显示一条消息

javascript - 如何设置一个已经实例化的JavaScript对象的原型(prototype)?

javascript - 使用 jQuery 读取 JSON 对象

javascript - Visual Studio 代码清理任务

javascript - 获取单击的下拉元素的文本内容的标准方法不起作用

javascript - 从 Django Web 应用程序打印收据

php - 相当于 PHP 的 javascript 卸载

javascript - 如何操作 jQuery 单击事件的宽度?

php - 获取 javascript 值的内容到一个 php 变量中?

javascript - 将正方形 div 动画化为梯形