リーリー
文字列は不変なので変更できません
その後、スタック内のデータは変更できますか?
たとえば、num=10; num=11;
変更されるのは、スタック内の値 10 が 11 に変更されることです。
またはスタック内に新しい num=11 を作成します。そして元のメモリを置き換えます 削除はどうですか?
文字列は不変なので変更できません
その後、スタック内のデータは変更できますか?
たとえば、num=10; num=11;
変更されるのは、スタック内の値 10 が 11 に変更されることです。
またはスタック内に新しい num=11 を作成します。そして元のメモリを置き換えます 削除はどうですか?
私の理解は
リーリー リーリーそれでも分からなかったら、もう少し頑張ってみます----->js本来の価値の秘密
一緒に進歩しましょう。
スクリプト文字列は不変です。
str[0] = "d"; str[0] = "d"; のポインタ [0] は値を読み取ることができます。
追加:
リーリーおすすめ:
リーリーさあ!
新規作成する必要があります
ヒープ、スタック、定数プールを含むメモリ分散。ヒープのスペースはスタックのスペースよりも大きく、通常、ヒープにはオブジェクトや関数などが含まれます。宣言された変数はスタックに配置され、一部の通常の文字と数値は通常、定数プールに配置されます。それで、私が付け加えたいのは、あなたが言ったこととは別の場所に保管されているものもあるということです。
JavaScript の文字列型は Java の文字列型から借用されたものであり、文字列リテラルは一度宣言されると変更できません。
中には仙人変換があります
変数(値)→メモリ
数値変数やブール変数では、(値)は数値です
文字列、オブジェクト、配列などでは、(値)はメモリを指すアドレスです。
変数を再代入することは (値) を変更することであり、変数を別の変数に代入することは (値) を別の変数に渡す (コピー) ことです。
図では、
b=n; 値は変更されず、
str="aa"; str ="bb "; str は変更されず、(値) は別の文字列
str2="aa" を指すように変更されます。str2 は元の "aa" ではなく、新しい "aa" を指します。 str3=str2;str3 (値) は str2 と同じで、同じ文字列を指し、同等です。
文字列は参照によってコピーおよび転送され、値によって比較されます
オブジェクト、配列、関数は参照によってコピーおよび転送され、比較されます