5
至少在V8像爲什麼JavaScript中的if()表達式中存在var是非法的?
if((var i = x*x) == 2){}
會給大約一個意想不到的「變種」關鍵字錯誤。然而,如果var在if()之前發生,那麼沒有錯誤,但是我仍然在表達式中保留了i的賦值。爲什麼有這麼奇怪的例外?這是否在ECMA腳本標準中?在if()表達式的評估中是否存在不可檢測的閉包,因此在var中留下會使我的任務消失?
爲了進一步概括,看起來var
在它之前必須沒有非空白字符。
這似乎是因爲'var'是ECMA-262標準中的一個關鍵字,用於標識一個變量語句,它是一個語句而不是一個表達式。 – 2011-04-24 06:27:43