先看下面兩個**,為什麼第一行正常(編譯/執行),但第二行給出錯誤?注意是
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中 的小問題
先看下面兩個 為什麼第一行正常 編譯 執行 但第二行給出錯誤?注意是 referenceerror。0 uncaught referenceerror invalid left hand side expression in postfix operation 第一想法 0 應該和 是一樣的,所以兩...
關於js中的幾個小問題。
問題1 使用連續賦值後面的變數會成為全域性物件的乙個屬性,並且這個屬性可以通過delete刪除。原因 賦值語句是從右往左執行的,我們將10賦值給了c,但是c此時還宣告,接著把c的返回值賦值給了b,但是b也還沒有宣告,最後賦值給了a此時a有宣告,所以a就是區域性變數。var a b c 10 cons...
關於fork的小問題
在閱讀apue的時候,試著在cygwin中測試乙個源程式,如下 1 include 2 include 3 include 4 include 56 define maxline 512 7 static void sig int int 8 int main int argc,char argv ...