7

重複の可能性:
javascript番号-不変

Douglas Crockfordの本JavaScript:GoodPartsを読みました。JavaScriptの数は不変であると書かれています。ただし、JavaScriptの数値は値によってコピーされるため、演算子++を使用して値を変更できます。では、なぜそれが不変だと言うのですか?さらに、それが不変である場合、なぜ数値が値によってコピーされるのですか?

4

2 に答える 2

6

それらは値によってコピーされるため、不変です。

あなたがするとき

var x = 4;
x += 1;

4番号を番号に変更していません5。変数に格納されている値をxから4に変更しました5

于 2012-05-18T07:25:43.690 に答える
0

オブジェクトのメンバーを変更すると、その内容が変更されます。変数の値 (参照) は変わりません。これは変更可能で、

文字列を宣言すると値がありますが、その値を変更すると、実際には新しい文字列が作成されます。これは、不変であることを意味します。

数字も同様。3 を 4 に変更することはできません。3 は常に 3 であり、それ以外の値はありません。したがって、変数を別の数値に代入すると、メモリ内に新しい数値が作成されます。変数が指すメモリの内容を別の値に代入するのではありません。

于 2012-05-18T07:28:19.430 に答える