undefined
和 之间究竟有什么区别void 0
?
哪个是首选,为什么?
undefined
和 之间究竟有什么区别void 0
?
哪个是首选,为什么?
不同之处在于某些浏览器允许您覆盖undefined
. 但是,void anything
总是返回真正的undefined。
undefined = 1;
console.log(!!undefined); //true
console.log(!!void 0); //false
undefined
具有正常的变量语义,即使是严格模式也无法修复,并且需要运行时查找。它可以像任何其他变量一样被隐藏,并且默认的全局变量undefined
在 ES3 中不是只读的。
void 0
实际上是一个编译时防弹常量undefined
,没有查找要求。这就像编写null
or true
,而不是查找变量值。它开箱即用,没有任何安全参数,而且编写时间较短。它在各方面都更好。
使用undefined
. 它比 更广为人知void(0)
。
此处的括号是可选的void 0
,void(0)
和void (0)
是等效的。的void
是一元运算符具有从右到左结合,因此值被放置在它的右边:
void <VALUE>
.
对于第二个问题,您需要undefined
直接使用,同时避免不需要的操作数评估来检索相同的undefined
值。
参考中的更多信息:https : //developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/void