我一直在阅读我公司项目的 javascript 源代码并遇到了这个
if (options.parse === void 0) options.parse = true;
不知道0
这里做什么?
我一直在阅读我公司项目的 javascript 源代码并遇到了这个
if (options.parse === void 0) options.parse = true;
不知道0
这里做什么?
void
运算符非常有趣:它接受一个操作数,计算它,然后表达式的结果是undefined
。所以0
不是无关紧要的,因为void
运算符需要一个操作数。
人们有时使用来避免符号可以void 0
被覆盖的事实(如果您不使用严格模式)。例如:undefined
undefined = 42;
另外,undefined
在一个窗口中不是===
在undefined
另一个窗口中。
因此,如果您正在编写一个库并且想要有点偏执,无论是关于人们重新定义undefined
还是您的代码可能用于多窗口情况(框架等),您可能不会使用该符号undefined
来检查某些东西是否是undefined
. 通常的答案是使用typeof whatever === "undefined"
,但=== void 0
可以工作(好吧,它可能在多窗口情况下不起作用,具体取决于您将其与什么进行比较)并且更短。:-)