void 0 与 undefined

2019-03-10 11:54:42来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

偶然看到一个问题:为什么有的编程规范要求用 void 0 代替 undefined?

如果不知道这个答案的小伙伴,第一反应就要问void 0是什么鬼?

void 0

void是JavaScript的一个操作符,而void 0会返回undefined,实验出真知,可以在浏览器试验一下

console.log(void 0) // undefined
console.log(void 0 === undefined) // true

可以看出,void 0跟undefined是一样的,所以用void 0 代替undefined是完全可行的。但是为什么呢?

why

大家可以去MDN上了解一下undefined的定义:undefined是全局对象的一个属性,也就是说,它是全局作用域中的一个变量,undefined的最初值就是原始数据类型undefined。

注: ES5之后的标准中,规定了全局变量下的undefined值为只读,不可改写的,但是局部变量中依然可以对之进行改写。

function changeUndefined () {
    var undefined = 1;
    console.log(undefined);
}
changeUndefined(); // 1

而void 0无论什么时候都是返回undefined,这样来看,使用void 0来代替undefined就比较稳妥,不会出错。


原文链接:https://www.cnblogs.com/qiuxiaozhen/p/10497486.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JavaScript学习要点

下一篇:javaScript 时间转换,将后台返回的时间为一串数字转成正常格式