首页 > underscore.js 关于 isUndefined函数的疑问?

underscore.js 关于 isUndefined函数的疑问?

关于underscore.js中isUndefiend函数的疑问?

 _.isUndefined = function(obj) {
    return obj === void 0;
  };

为什么可以通过 obj === void 0 来判断一个值是否是undefined


主要原因是 undefined 在某些浏览器中可以被改写:

<script type="text/javascript">
    undefined = 20;
    alert(undefined); // 20 (IE8 下)
</script>

而 void 0 是任何情况下都是 undefined


JavaScript中void操作符执行一个表达式,并返回undefined; void(expression);
void(0);等价于 void 0;
可以在控制台测试一下:
void(a=1);
console.log(a);//输出1

所以上面的代码的含义就是 判断一个 object === undefined;但是 void 0 比 undefined 更短;
可参考:[](http://stackoverflow.com/questions/1291942/what-does-javascriptvoid0-mean)

void语句返回undefined

【热门文章】
【热门文章】