Javascript:if语法中的附加零是什么?

day*_*mer 4 javascript

我一直在阅读我的公司项目的javascript源代码并且遇到了这个问题

if (options.parse === void 0) options.parse = true;
Run Code Online (Sandbox Code Playgroud)

不确定0这里有什么?

T.J*_*der 9

void操作是很有意思:它接受一个操作数,计算它,然后表达式的结果undefined.所以这0不是无关紧要的,因为void运算符需要一个操作数.

人们使用void 0有时回避的事实是,undefined符号可以被覆盖(如果你不使用严格模式).例如:

undefined = 42;
Run Code Online (Sandbox Code Playgroud)

另外,将undefined在一个窗口是不是===undefined在另一个窗口.

因此,如果您正在编写一个库并希望有点偏执,无论是重新定义人员undefined还是您的代码可能在多窗口情况下使用(帧等),您可能不会使用该符号undefined来检查某些内容是否存在undefined.在通常的答案有使用typeof whatever === "undefined",但=== void 0工作(当然,它可能无法在多窗口情况下工作,这取决于你比较它是什么)和较短.:-)

  • 希望我可以给另一个+1,因为使用42作为示例数字.别忘了你的毛巾. (3认同)