關於js中 的小問題

2021-08-08 00:10:48 字數 727 閱讀 5079

先看下面兩個**,為什麼第一行正常(編譯/執行),但第二行給出錯誤?注意是

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 ...