ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の引用符で囲まれたオブジェクト キーと引用符で囲まれていないオブジェクト キー: セマンティックな違いは何ですか?

JavaScript の引用符で囲まれたオブジェクト キーと引用符で囲まれていないオブジェクト キー: セマンティックな違いは何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-04 08:35:34877ブラウズ

Quoted vs. Unquoted Object Keys in JavaScript: What's the Semantic Difference?

オブジェクト キーの引用符: セマンティクスの違い?

JavaScript では、オブジェクト プロパティは引用符の有無にかかわらずキーを使用して定義できます。これは小さな違いのように見えるかもしれませんが、プロパティ アクセスの動作に微妙な変更が加えられています。

引用符付きのプロパティと引用符なしのプロパティ

  • 引用符付き: キーを引用符 (一重または二重) で囲むと、文字列になります。これは、ドット表記 (例: obj.foo) とブラケット表記 (例: obj["foo"]) によるプロパティ アクセスが同じように動作することを意味します。
  • 引用符なし:引用符で囲まれていない場合は、識別子になります。これは、ドット表記によるプロパティ アクセスが有効な JavaScript 識別子に対してのみ機能することを意味します。キーに識別子として許可されていない文字 (「-」、「&」、「%」など) が含まれている場合は、括弧表記を使用する必要があります。

次の例を考えてみましょう:

obj1 = {'foo': 'bar'};
obj2 = {foo: 'bar'};

この場合、obj1 とobj2 には同じキーと値のペアがありますが、プロパティには別の方法でアクセスできます。

console.log(obj1.foo); // 'bar'
console.log(obj2.foo); // ReferenceError: foo is not defined
console.log(obj2['foo']); // 'bar'

ご覧のとおり、キー "foo" は有効な JavaScript 識別子ではないため、obj2 にはドット表記を使用してアクセスできません。 。代わりに、括弧表記を使用する必要があります。

注:

引用符を使用するかどうかで機能に大きな違いはありませんが、JSON データ交換形式には二重引用符が必要です。プロパティキー周り。 JSON 形式でデータを交換する予定がある場合は、オブジェクト キーを常に引用符で囲むことをお勧めします。

以上がJavaScript の引用符で囲まれたオブジェクト キーと引用符で囲まれていないオブジェクト キー: セマンティックな違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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