Cheeso의 질문에 대한 정답은 구현이 문서를 능가한다는 것입니다. 더 이상 키로 문자열이 필요하지 않습니다. 문자열 (예 : 따옴표) 또는 (아마도) 변수 이름으로 사용될 수있는 모든 것이 될 수 있습니다. , 또는 $이며 문자, 숫자, $ 및 _ 만 포함합니다.
나는 내가 한 것과 같은 아이디어 로이 질문을 방문하는 다음 사람을 위해 나머지를 단순화하고 싶었습니다. 여기 고기가 있습니다.
객체 키로 사용될 때 변수 이름은 JSON에서 보간되지 않습니다 (Frido에게 감사드립니다!).
Breton은 "키"대신 "식별자"를 사용하여 "식별자가 예약어 인 경우 식별자가 아닌 해당 단어로 해석됩니다"라고 썼습니다. 이것은 사실 일 수 있지만 문제없이 시도했습니다.
var a = {do:1,long:2,super:3,abstract:4,var:5,break:6,boolean:7};
a.break
=> 6
Quentin은 따옴표 사용에 대해 "...하지만 [키]에 특정 문자 (또는 키워드로 만드는 문자 조합)가 포함되어 있지 않으면 그럴 필요가 없습니다."라고 썼습니다.
@ 기호를 사용하여 이전 부분 (특정 문자)이 사실임을 발견했습니다 (사실 $ 및 _가 오류를 일으키지 않는 유일한 문자라고 생각합니다).
var a = {a@b:1};
=> 구문 오류
var a = {"a@b":1};
a['a@b']
=> 1
그러나 위에서 보여준 키워드에 대한 괄호는 사실이 아닙니다.
내가 원했던 것은 {와 콜론 사이 또는 후속 속성의 쉼표와 콜론 사이의 텍스트가 객체 키를 만들기 위해 인용되지 않은 문자열로 사용되거나 Friedo가 말했듯이 변수 이름이 없기 때문에 작동합니다. t 보간 :
var uid = getUID();
var token = getToken(); // Returns ABC123
var data = {uid:uid,token:token};
data.token
=> ABC123