유효한 자바 스크립트 객체 속성 이름
나는 자바 스크립트 객체의 속성 이름에 유효한 것으로 간주되는 것을 해결하려고합니다. 예를 들면
var b = {}
b['-^colour'] = "blue"; // Works fine in Firefox, Chrome, Safari
b['colour'] = "green"; // Ditto
alert(b['-^colour']); // Ditto
alert(b.colour); // Ditto
for(prop in b) alert(prop); // Ditto
//alert(b.-^colour); // Fails (expected)
이 게시물 은 유효한 자바 스크립트 변수 이름에 대해 자세히 설명하며 '-^ colour'는 변수 이름으로 유효하지 않습니다. 객체 속성 이름에도 동일하게 적용됩니까? 위의 내용을 살펴보면
b [ '-^ colour']는 유효하지 않지만 모든 브라우저에서 기발하게 작동하며 앞으로 작동한다고 믿으면 안됩니다.
b [ '-^ colour']는 완전히 유효하지만이 방식으로 만 액세스 할 수있는 형식 일뿐입니다. (지원되므로 객체를 맵으로 사용할 수 있습니까?)
다른 것
제쳐두고, 자바 스크립트의 전역 변수는 최상위 수준에서 다음과 같이 선언 될 수 있습니다.
var abc = 0;
그러나 (내가 이해하는대로) 생성 될 수 있습니다.
window['abc'] = 0;
다음은 위의 모든 브라우저에서 작동합니다.
window['@£$%'] = "bling!";
alert(window['@£$%']);
유효한가요? 변수 이름 지정 규칙과 모순되는 것 같습니다. 아니면 변수를 선언하지 않습니까? 변수와 개체 속성 이름의 차이점은 무엇입니까?
예, 객체를 맵으로 사용할 수 있으며 모든 문자열이 속성 이름이 될 수 있습니다. 아시다시피 일부 속성은 대괄호 구문을 사용해야 만 액세스 할 수 있습니다.
window['abc']
속성에 액세스하고 있습니다. 다음과 같은 값 (전역 수준)을 참조하더라도 변수가 아닙니다.
abc
개체 속성 명명 규칙과 변수 명명 규칙은 별개입니다. 표준은 소수의 속성 이름 (예 : prototype
and constructor
, IIRC) 만 "예약" 하지만 그 외에는 모든 문자열이 사용됩니다.
물론 실행 환경 (예 : 브라우저)이 더 많은 마법 속성을 추가하기로 결정한 경우는 예외입니다. (나는 설정 __proto__
이 아주 이상한 방식으로 어떤 것을 깨뜨리는 것을 들었다 )
전역 변수를 만들 때마다 실제로 전역 개체 의 새 구성원 (
window
브라우저 환경,global
Node.js 등)을 만듭니다. 이유는window.x
정확히 (글로벌)와 같은 같은var x
,this.x
아니면 그냥x
.지도와 같은 자바 스크립트 객체를 이해 하는 것은 매우 옳습니다. 그 이유는 다음과 같습니다. a) 언제든지 새 요소를 동적으로 추가 할 수 있습니다. b) 요소는 모든 이름을 가질 수 있습니다. 특수 문자도 포함됩니다. c) 개체 / 맵의 존재하지 않는 요소에 액세스하려고 시도 할 수 있으며 오류가 아닙니다. d) 개체에서 요소를 제거 할 수 있습니다.
표준 점 표기법 (예 :)으로 객체 멤버에 액세스
a.x
하려면 _ 또는 $ 이외의 특수 문자를 사용할 수 없습니다. 또한 이름은 숫자로 시작할 수 없습니다. 다른 모든 경우에는 대괄호와 따옴표를 사용하여 개체 요소에 액세스해야합니다.
참고 URL : https://stackoverflow.com/questions/2940424/valid-javascript-object-property-names
'Program Tip' 카테고리의 다른 글
MySQL에 대한 최적의 varchar 크기는 무엇입니까? (0) | 2020.11.15 |
---|---|
JPA 병합 대 지속 (0) | 2020.11.15 |
드롭 다운 상자의 오버플로 텍스트에 대한 줄임표 (0) | 2020.11.15 |
자동으로 연결을 닫는 websocket (0) | 2020.11.15 |
테마 옵션에 대한 WordPress 3.5 사용자 정의 미디어 업로드 (0) | 2020.11.15 |