ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で文字列プリミティブにプロパティを追加できないのはなぜですか?

JavaScript で文字列プリミティブにプロパティを追加できないのはなぜですか?

DDD
DDDオリジナル
2024-10-31 21:36:29633ブラウズ

Why Can't You Add Properties to String Primitives in JavaScript?

文字列プリミティブへのプロパティの追加が失敗する理由

JavaScript では、以下のコードのように、文字列プリミティブにプロパティを追加しようとします。

<code class="javascript">var test = "test";
test.test = "test inner";
console.log(test.test); // Output: undefined</code>

JavaScript の型

この問題を理解するには、JavaScript の型の概念を理解する必要があります。 JavaScript には 8 つの型があります:

  • 7 つのプリミティブ型: Unknown、Null、Boolean、Number、BigInt、String、Symbol
  • 1 つの非プリミティブ型: Object

プリミティブ値 (文字列など) はプロパティを所有できませんが、オブジェクトはプロパティを所有できます。

プロパティの割り当て

プロパティを変数に割り当てる場合、次のようになります。 as:

<code class="javascript">foo.bar = 'abc';</code>

結果は foo の値によって異なります:

  • 未定義または Null: エラー
  • オブジェクト: 名前付きプロパティを作成または割り当てます。 bar'
  • その他の型 (例: String): strict モードの TypeError (loose モードでは no-op)

日付の並べ替えのソリューション

あなたの特定のケースでは、日付は文字列として保存されるため、日付を並べ替えるための 1 つの回避策は、日付が常に同じ形式で保存されることを前提とした並べ替えアルゴリズムでカスタム比較関数を使用することです。このカスタム関数は、日付文字列の形式に基づいて日付を認識した比較を実行できます。

以上がJavaScript で文字列プリミティブにプロパティを追加できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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