簡體   English   中英

void(0)返回`undefined`,但允許屬性訪問。為什么?

[英]void(0) returns `undefined`, but allows property access. Why?

因此,在執行傳遞給它的表達式后, 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

http://jsfiddle.net/bFhLS/

void運算符本身不使用括號。 因此,該語句可能被解析為:

void( (0).someprop )

並從Number訪問someprop 而不是:

(void (0)).someprop

正如您可能期待的那樣,這會引發錯誤。

void是一個運算符 ,它不是一個函數。

void(0)相當於"void 0"

所以void(0).someprop相當於void 0..someprop

證明,

void(undefined).someprop 

拋出一個錯誤,因為它將被評估為( somepropundefined中不存在肯定)

void undefined.someprop

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM