따옴표와 따옴표가없는 객체 키의 차이점은 무엇입니까?
차이점이 있습니까?
obj = {'foo': 'bar'}
과
obj = {foo: 'bar'}
-
따옴표를 사용하지 않으면 키에 사용할 수 없습니다 . 그러나 실제로 차이가 있습니까? 그렇다면 어느 것입니까?
아니요, 따옴표는 차이가 없습니다 (유의 한 바와 같이 유효한 JavaScript 식별자가 아닌 키를 사용하려는 경우 제외).
참고로 JSON 데이터 교환 형식 은 식별자 주위에 큰 따옴표 가 필요하며 작은 따옴표는 허용 하지 않습니다 .
에서 인용 부호가 속성 이름 / 자바 스크립트 객체 키 , 내 쓰기까지 주제에 :
속성 이름이 숫자 리터럴이거나 유효한 식별자 이름 인 경우에만 따옴표를 생략 할 수 있습니다 .
[…]
모든 속성 이름에 대괄호 표기법을 안전하게 사용할 수 있습니다.
[…]
점 표기법은 속성 이름이 유효한 식별자 이름 인 경우 에만 사용할 수 있습니다 .
예약어는 ES5에서 따옴표없는 속성 이름으로 사용할 수 있습니다. 그러나 ES3와의 하위 호환성을 위해 어쨌든 인용하는 것이 좋습니다.
또한 주어진 속성 이름을 따옴표없이 사용하거나 점 표기법으로 사용할 수 있는지 알려주는 도구를 만들었습니다. mothereff.in/js-properties 에서 사용해보십시오 .
여기에는 차이가 없습니다. 스타일의 문제입니다. 이렇게하는 이유 중 하나는 예약 된 키워드이므로 '슈퍼'또는 '클래스'를 키로 사용할 수 있기 때문입니다.
어떤 사람들은 공백이있는 문자열을 전달하고 싶을 때 o [ 'whitespace를 가질 수 있습니다']를 부를 수 있습니다. 그러나 나는 그 나쁜 연습을 부를 것입니다.
아니요, 자바 스크립트가 아닙니다. 그러나 키 주위에 따옴표가 없으면 일부 JSON 파서가 실패합니다.
상황이 다른 경우도 있습니다. 예를 들어, jQuery를 사용 중이고 jQuery $ () 명령을 호출하여 요소를 작성할 때 전달할 매개 변수 목록을 작성하는 경우 인용 된 단어는 매개 변수로, 인용되지 않은 단어는 함수로 변환됩니다. 예를 들어, "size"는 객체의 크기 속성을 설정하고 size (따옴표 없음)는 객체에서 size () 함수를 호출합니다. 하단 근처의 jQuery ()를 참조하십시오 .
두 번째 인수는 편리하지만 그 유연성으로 인해 의도하지 않은 결과 (예
<input>
: size 속성을 설정하는 대신 .size () 메서드를 호출하는 $ ( " ", {size : "4"}))가 발생할 수 있습니다 . 따라서 이전 코드 블록은 다음과 같이 작성 될 수 있습니다.
'IT story' 카테고리의 다른 글
Spring 설정 파일에서 bean id와 name 사용의 차이점 (0) | 2020.05.10 |
---|---|
npm 패키지에서“at”(@) 접두어의 의미는 무엇입니까? (0) | 2020.05.10 |
일반적으로 어떤 머신 러닝 분류기를 선택해야합니까? (0) | 2020.05.10 |
Cocoapods 명령은“이러한 파일이나 디렉토리가 없습니다. @ dir_initialize-/ Users / (0) | 2020.05.09 |
루비 : 해시를 HTTP 매개 변수로 바꾸는 방법? (0) | 2020.05.09 |