1. 程式人生 > >關於js中++的小問題

關於js中++的小問題

結果 span 想法 href 而不是 www www. 外部 exp

先看下面兩個代碼,為什麽第一行正常(編譯/運行),但第二行給出錯誤?註意是ReferenceError。

[[]][0]++;           
[]++; #Uncaught ReferenceError: Invalid left-hand side expression in postfix operation

第一想法[[]][0]應該和[ ]是一樣的,所以兩者都應該工作,或者兩者都應該失敗。

首先,這不是一個SyntaxError這是一個運行時錯誤ReferenceError。所以[ ]++是語法允許的。

想要解決這個問題,就應該查查什麽事ReferenceError。再看下面:

2=3
#Uncaught ReferenceError: Invalid left-hand side in assignment

這個錯誤和上面的錯誤一樣。

因為這兩個操作都使用稱為“PutValue”的規範中的抽??象算法。該算法的第3步說:

  如果Type(V)不是Reference,則拋出ReferenceError異常。

註意:成員表達式的結果不是值本身([]),而是Reference對該值的影響 。所以事實上,[0]訪問是給我們提到外部數組的第0個位置,

而不是給我們這個位置的實際值。

關於js中++的小問題