因此,void
在执行传递给它的表达式后返回undefined
。当您尝试访问undefined
的属性时,它会抛出异常。那么为什么void(0).prop
返回undefined
而不是崩溃呢?
alert("void(0) => " + void(0)); // undefined
// How is it that this doesn't throw an exception?
alert("void(0).someprop => " + void(0).someprop); // undefined
// Exception, can't access property of undefined.
alert("undefined.someprop => " + undefined.someprop); // crash
发布于 2013-09-13 04:48:24
void
operator本身不使用括号。因此,该语句可能被解析为:
void( (0).someprop )
以及从Number
访问someprop
。而不是as:
(void (0)).someprop
正如您所期望的那样,这确实抛出了一个错误。
https://stackoverflow.com/questions/18774001
复制相似问题