프로그래밍 언어/HTML,CSS,JS

JavaScript 속성 액세스 : 점 표기법과 대괄호

Rateye 2021. 9. 17. 11:36
728x90
반응형
질문 : JavaScript 속성 액세스 : 점 표기법과 대괄호?

첫 번째 형식이 문자열 리터럴이 아닌 변수를 사용할 수 있다는 명백한 사실 외에 다른 하나를 사용하는 이유가 있습니까? 그렇다면 어떤 경우에?

코드에서 :

// Given:
var foo = {'bar': 'baz'};

// Then
var x = foo['bar'];

// vs. 
var x = foo.bar;

컨텍스트 : 이러한 식을 생성하는 코드 생성기를 작성했으며 어느 것이 더 바람직한 지 궁금합니다.

답변

(여기 에서 출처.)

대괄호 표기법을 사용하면 점 표기법과 함께 사용할 수없는 문자를 사용할 수 있습니다.

var foo = myForm.foo[]; // incorrect syntax
var foo = myForm["foo[]"]; // correct syntax

myForm["ダ"] 에서와 같이 비 ASCII (UTF-8) 문자 포함 ( 더 많은 예 ).

둘째, 대괄호 표기법은 예측 가능한 방식으로 변하는 속성 이름을 다룰 때 유용합니다.

for (var i = 0; i < 10; i++) {
  someFunction(myForm["myControlNumber" + i]);
  }
  

모으다:

  • 점 표기법은 쓰기가 더 빠르며 읽기가 더 명확합니다.
  • 대괄호 표기법은 특수 문자가 포함 된 속성에 액세스하고 변수를 사용하여 속성을 선택할 수 있도록합니다.

점 표기법과 함께 사용할 수없는 문자의 또 다른 예는 자체에 점이 포함 된 속성 이름입니다 .

예를 들어 json 응답에는 bar.Baz 라는 속성이 포함될 수 있습니다.

var foo = myResponse.bar.Baz; // incorrect syntax
  var foo = myResponse["bar.Baz"]; // correct syntax
  
출처 : https://stackoverflow.com/questions/4968406/javascript-property-access-dot-notation-vs-brackets
728x90
반응형