>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 인용된 개체 키와 인용되지 않은 개체 키: 의미론적 차이점은 무엇입니까?

JavaScript의 인용된 개체 키와 인용되지 않은 개체 키: 의미론적 차이점은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-04 08:35:34906검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.