我一直在阅读我的公司项目的javascript源代码并且遇到了这个问题
if (options.parse === void 0) options.parse = true;
Run Code Online (Sandbox Code Playgroud)
不确定0这里有什么?
该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工作(当然,它可能无法在多窗口情况下工作,这取决于你比较它是什么)和较短.:-)
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |