void 0 与 undefined
程序员文章站
2022-08-05 20:51:05
偶然看到一个问题:为什么有的编程规范要求用 void 0 代替 undefined? 如果不知道这个答案的小伙伴,第一反应就要问void 0是什么鬼? void 0 void是JavaScript的一个操作符,而void 0会返回undefined,实验出真知,可以在浏览器试验一下 可以看出,voi ......
偶然看到一个问题:为什么有的编程规范要求用 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就比较稳妥,不会出错。
上一篇: RAC ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
下一篇: Vue-Router中History模式
推荐阅读
-
Java中Boolean与字符串或者数字1和0的转换实例
-
javascriptvoid(0)含义以及与"#"的区别讲解
-
selenium python虚拟点击网页 爬虫翻页功能 href=javascript:void(0)怎么翻页
-
MySQL中主键为0与主键自排约束的关系详解(细节)
-
浅谈href=#与href=javascript:void(0)的区别
-
numpy库与pandas库axis=0,axis= 1轴的用法详解
-
Python之NumPy(axis=0 与axis=1)区分详解
-
border:none与border:0使用区别
-
循序渐进学.Net Core Web Api开发系列【0】:序言与目录
-
荐 Java——数据库编程JDBC之数据库连接池技术(C3P0与Druid,提供了Druid的工具类)