ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScript では文字列が不変なのはなぜですか?

JavaScript では文字列が不変なのはなぜですか?

青灯夜游
青灯夜游オリジナル
2022-02-16 14:47:453468ブラウズ

JavaScript では、文字列の値は不変です。これは、文字列が一度作成されると変更できないことを意味します。理由: 文字列自体は言語によってカプセル化された基本型であり、基になる型は次のとおりです。オブジェクトの作成以来内容を変更できないため、文字列は変更されません。

JavaScript では文字列が不変なのはなぜですか?

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript では、文字列の値は不変です。つまり、文字列が作成されると変更することはできません。

たとえば、次のコード:

var myStr = "Bob";
myStr[0] = "J";

は、変数 myStr が不変であるため、変数 myStr の値を「Job」に変更しません。

これは、myStr を決して変更できないという意味ではなく、文字列リテラルの個々の文字が変更できないというだけであることに注意してください。

myStr を変更する唯一の方法は、次のように値を再割り当てすることです:

var myStr = "Bob";
myStr = "Job";

js では文字列が不変なのはなぜですか?

実際、文字列自体は言語によってカプセル化された基本型です (システム独自の String コンストラクター new を介して出力されます) 最下層はやはりオブジェクトであり、単純なデータ型ではありません。このオブジェクトの内容は作成されてから変更できないため、文字列は変更されません。

などの操作では、新しい文字列オブジェクトのみが生成され、元の文字列オブジェクトは変更されません。文字列オブジェクトが参照されなくなった場合、そのオブジェクトは GC によってリサイクルされます。

[関連する推奨事項: JavaScript 学習チュートリアル]

以上がJavaScript では文字列が不変なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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