답변:
아니요, 따옴표는 차이가 없습니다 (명시한 바와 같이 유효한 JavaScript 식별자가 아닌 키를 사용하려는 경우 제외).
참고로 JSON 데이터 교환 형식 은 식별자 주위에 큰 따옴표 가 필요하며 작은 따옴표는 허용 하지 않습니다 .
에서 인용 부호가 속성 이름 / 자바 스크립트 객체 키 , 내 쓰기까지 주제에 :
속성 이름이 숫자 리터럴이거나 유효한 식별자 이름 인 경우에만 따옴표를 생략 할 수 있습니다 .
[…]
모든 속성 이름에 대괄호 표기법을 안전하게 사용할 수 있습니다.
[…]
점 표기법은 속성 이름이 유효한 식별자 이름 인 경우 에만 사용할 수 있습니다 .
예약어는 ES5에서 따옴표없는 속성 이름으로 사용할 수 있습니다. 그러나 ES3와의 하위 호환성을 위해 어쨌든 인용하는 것이 좋습니다.
또한 주어진 속성 이름을 따옴표없이 사용하거나 점 표기법으로 사용할 수 있는지 알려주는 도구를 만들었습니다. mothereff.in/js-properties 에서 사용해보십시오 .
아니요, 자바 스크립트가 아닙니다. 그러나 키 주위에 따옴표가 없으면 일부 JSON 파서가 실패합니다.
상황이 다른 경우도 있습니다. 예를 들어, jQuery를 사용 중이고 jQuery $ () 명령을 호출하여 요소를 작성할 때 전달할 매개 변수 목록을 작성하는 경우 인용 된 단어는 매개 변수로, 인용되지 않은 단어는 함수로 변환됩니다. 예를 들어, "size"는 객체의 크기 속성을 설정하고 size (따옴표 없음)는 객체에서 size () 함수를 호출합니다. 하단 근처의 jQuery ()를 참조하십시오 .
두 번째 인수는 편리하지만 유연성으로 인해 의도하지 않은 결과 (예 : $ ( "
<input>", {size : "4"})가 발생하여 size 속성을 설정하는 대신 .size () 메서드를 호출 할 수 있음)가 발생할 수 있습니다 . 따라서 이전 코드 블록은 다음과 같이 작성 될 수 있습니다.
obj = { 12e34: true };같지 않습니다obj = { '12e34': true };. 전자는을 통해 호텔에 액세스해야obj['1.2e+35']하지만 후자는을 (를) 사용obj['12e34']합니다. 자세한 내용은 내 답변을 참조하십시오.