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
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
CSS를 사용하여 페이지 로드시 페이드 인 효과 내기 (0) | 2021.09.27 |
---|---|
CSS text-overflow: ellipsis; 가 작동하지 않을 때 (0) | 2021.09.27 |
CSS에서 테이블 셀 패딩 및 셀 간격을 설정하는 방법 (0) | 2021.09.17 |
CSS 글꼴 테두리 추가 하는 방법 (0) | 2021.09.17 |
CSS Flexbox에서 "justify-items"및 "justify-self" 속성이 없는 이유 (0) | 2021.09.17 |