The void operator in JavaScript將調用內部GetValue(expr)
,但始終返回undefined
,無論使用什麼值或表達式。爲什麼void操作符在總是計算爲undefined時調用GetValue(expr)?
細則中指出:
11.4.2操作
生產UnaryExpression空隙:無效UnaryExpression評估如下:
- 讓EXPR是這個結果評估UnaryExpression。
- 致電
GetValue(expr)
。- 返回未定義。
GetValue必須被調用,即使它的值沒有被使用,因爲它可能有可觀察的副作用。
我的問題是,爲什麼?什麼樣的可觀察的副作用可能發生?我們能否證明無效可能會改變程序流程,並討論如果我們不運行GetValue
會發生什麼?
'' – Raynos
無這裏的答案似乎解釋'呼叫的GetValue(表達式).',其中'expr'是** **結果* UnaryExpression *。這是你似乎在問的第2步。是對的嗎。 – RightSaidFred
@RightSaidFred正確。爲什麼要回報我們永遠不會使用的東西爲什麼使用void返回undefined?如果我們有其他方法返回undefined? (問題的兩個部分) – Incognito