如何理解下划线源中的“return obj === void 0”?

时间:2012-07-10 08:29:14

标签: javascript underscore.js

  

可能重复:
  What does “javascript:void(0)” mean?
  What does void 0 mean?

在文件http://underscorejs.org/underscore.js中,您可以看到这样的代码块:

// Is a given variable undefined?
_.isUndefined = function(obj) {
  return obj === void 0;
};

我不理解void 0部分,这很奇怪。如何理解?

2 个答案:

答案 0 :(得分:11)

这是控制台输出

>typeof void 0
"undefined"
>void 0 === undefined
true
>"undefined".length
9
>"void 0".length
6

我认为他们正在尝试保存3个字节的文件大小;)

编辑:  这个SO答案更有意义使用void 0,因为undefined只是window对象的属性,并且是可变的。因此,void 0是一种在浏览器中生成未定义的可信方式

答案 1 :(得分:7)

在javascript(自1.1起)中,void运算符用于计算表达式并返回undefined

请参阅ECMAScript Language Specification of the void operator

所以void 0是生成undefined的正确标准方式。

由于它是操作员,因此不需要括号。