我今天又在閱讀我的javascript書籍,它解釋了引用類型變量和基元類型變量之間的區別。它給出了這些例子來說明不同之處。字符串:JavaScript中的原始類型變量或引用類型變量?
實施例1(原語類型)
var a = 3.14;
var b = a;
a = 4;
alert(b); // Displays 3.14
實施例2(參考類型)
var a = [1, 2, 3];
var b = a;
var a[0] = 99;
alert(b); // Displays the changed array [99, 2, 3]
我理解這個例子,我沒有關於它的任何問題。我的問題是關於JavaScript中的字符串。直覺上,我會假定字符串是引用類型變量,因爲如果動態大小,但我在example.com上搞亂了它們,並且我創建了這個似乎表明字符串是原始類型變量的示例。
例3(字符串?)
var a = 'Ben';
var b = a;
var a = 'Benjamin';
alert(b); //Displays the unchanged 'Ben'
我搜索在這裏對堆棧溢出,並在谷歌,我發現,談到這一點,但他們大多都在談論其他語言的幾篇文章如Java和C#。
問: 在javascript中的字符串認爲是原始的或引用變量的類型以及是否有我應該知道的地方串不同的工作,那麼我會想到的任何其他情況呢?
如果您嘗試使用數組'['B','e','n']'的示例3,則您將獲得相同的結果 - 將新值(另一個數組)分配給'a'變量這不會影響'b'。嘗試使用示例2(其中您更改'a'的'0'字段)使用字符串 - 它會引發異常。 – Bergi