重複の可能性:
javascript番号-不変
Douglas Crockfordの本JavaScript:GoodPartsを読みました。JavaScriptの数は不変であると書かれています。ただし、JavaScriptの数値は値によってコピーされるため、演算子++を使用して値を変更できます。では、なぜそれが不変だと言うのですか?さらに、それが不変である場合、なぜ数値が値によってコピーされるのですか?
重複の可能性:
javascript番号-不変
Douglas Crockfordの本JavaScript:GoodPartsを読みました。JavaScriptの数は不変であると書かれています。ただし、JavaScriptの数値は値によってコピーされるため、演算子++を使用して値を変更できます。では、なぜそれが不変だと言うのですか?さらに、それが不変である場合、なぜ数値が値によってコピーされるのですか?
それらは値によってコピーされるため、不変です。
あなたがするとき
var x = 4;
x += 1;
4
番号を番号に変更していません5
。変数に格納されている値をx
から4
に変更しました5
。
オブジェクトのメンバーを変更すると、その内容が変更されます。変数の値 (参照) は変わりません。これは変更可能で、
文字列を宣言すると値がありますが、その値を変更すると、実際には新しい文字列が作成されます。これは、不変であることを意味します。
数字も同様。3 を 4 に変更することはできません。3 は常に 3 であり、それ以外の値はありません。したがって、変数を別の数値に代入すると、メモリ内に新しい数値が作成されます。変数が指すメモリの内容を別の値に代入するのではありません。