ホームページ  >  記事  >  バックエンド開発  >  javascript - スタック内のデータは変更できますか? たとえば、数値データは変更できますか?

javascript - スタック内のデータは変更できますか? たとえば、数値データは変更できますか?

WBOY
WBOYオリジナル
2016-08-23 09:17:491387ブラウズ

リーリー

文字列は不変なので変更できません

その後、スタック内のデータは変更できますか?
たとえば、num=10; num=11;
変更されるのは、スタック内の値 10 が 11 に変更されることです。
またはスタック内に新しい num=11 を作成します。そして元のメモリを置き換えます 削除はどうですか?

返信内容:

リーリー

文字列は不変なので変更できません

その後、スタック内のデータは変更できますか?
たとえば、num=10; num=11;
変更されるのは、スタック内の値 10 が 11 に変更されることです。
またはスタック内に新しい num=11 を作成します。そして元のメモリを置き換えます 削除はどうですか?

私の理解は

リーリー リーリー

それでも分からなかったら、もう少し頑張ってみます----->js本来の価値の秘密

一緒に進歩しましょう。

スクリプト文字列は不変です。

  1. str[0] = "d"; str[0] = "d"; のポインタ [0] は値を読み取ることができます。

追加:

リーリー

おすすめ:

リーリー

さあ!

新規作成する必要があります
javascript - スタック内のデータは変更できますか? たとえば、数値データは変更できますか?

ヒープ、スタック、定数プールを含むメモリ分散。ヒープのスペースはスタックのスペースよりも大きく、通常、ヒープにはオブジェクトや関数などが含まれます。宣言された変数はスタックに配置され、一部の通常の文字と数値は通常、定数プールに配置されます。それで、私が付け加えたいのは、あなたが言ったこととは別の場所に保管されているものもあるということです。

JavaScript の文字列型は Java の文字列型から借用されたものであり、文字列リテラルは一度宣言されると変更できません。

中には仙人変換があります

javascript - スタック内のデータは変更できますか? たとえば、数値データは変更できますか?

変数(値)→メモリ

数値変数やブール変数では、(値)は数値です
文字列、オブジェクト、配列などでは、(値)はメモリを指すアドレスです。
変数を再代入することは (値) を変更することであり、変数を別の変数に代入することは (値) を別の変数に渡す (コピー) ことです。
図では、

n=10; n=11; n は変更されず、

b=n; 値は変更されず、
str="aa"; str ="bb "; str は変更されず、(値) は別の文字列
str2="aa" を指すように変更されます。str2 は元の "aa" ではなく、新しい "aa" を指します。 str3=str2;str3 (値) は str2 と同じで、同じ文字列を指し、同等です。


文字列は参照によってコピーおよび転送され、値によって比較されます

数値およびブール型の値(trueとfalse)は値によってコピーおよび転送され、比較されます
オブジェクト、配列、関数は参照によってコピーおよび転送され、比較されます


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。