我一直在阅读我公司项目的 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可以工作(好吧,它可能在多窗口情况下不起作用,具体取决于您将其与什么进行比较)并且更短。:-)