대부분의 JSON 시리얼 라이저/디시리얼라이저에서 자바 스크립트 사전/해시 배열의 "키"부분은 문자열로 기록됩니다.JS 해시/사전의 "핵심"부분이 문자열이어야하는 이유는 무엇입니까?
의도 한 이름을 입력하는 대신 문자열을 키로 사용하면 어떤 이점이 있습니까? 그래서 키가 될 가지고있는 점은 무엇
alert(k1 == k2); // false (of course)
alert(k1.a == k2.a); // true
alert(k1["b"] == k2["b"]); // true
alert(uneval(k1)); // returns the k1 object literal notation.
alert(uneval(k2)); // returns the same string as above line.
alert(uneval(k1) == uneval(k2)); // true
:
var k1 = { a: 1, b: 2, c: 3 }; // define name normally
var k2 = { "a": 1, "b": 2, "c": 3 }; // define name with a string
내가 다음 테스트를 실행 : 예를 들어
, 나는 두 개체k1
등 같은
k2
를 정의하는 말 방법이
k1
정의 된대로 키 이름을 입력하는 대신
k2
이 정의 된대로 큰 따옴표 (문자열)를 정의 했습니까? 그는 또한 tabIndex를 위해 낙타 케이스를 사용하기 때문에
chromium.tabs.createTab({
"url": "http://www.google.com/",
"selected": true,
"tabIndex": 3
});
, 나는 모든 문자열을 사용하여 어떤 지점이 표시되지 않는 :
난 그냥 Aaron Boodman's blog entry를 가리키는 Ajaxian에서이 이상을 보았다.
왜 :
chromium.tabs.createTab({
url: "http://www.google.com/",
selected: true,
tabIndex: 3
});
왜 JS 닌자가 문자열로 url
, selected
및 tabIndex
회전의 규칙을 따르는 것?
자바 스크립트의 규칙이 JSON을 많이 사용하는 것으로부터 유출되었다고 가정합니다. – chakrit
파이썬 호환성이 따옴표의 이유로 언급되었습니다. – cobbal
@chakrit 예. 또한 기즈모 (gizmo)가 지적한 바와 같이, 예약어에 대해 걱정할 필요가 없으므로 JavaScript에서 따옴표를 사용하는 것이 일반적으로 안전합니다.예를 들어 {do : "something"}은 합법적 인 JavaScript가 아닙니다. –