false.toString (); // 'false'[1, 2, 3] .ToString (); // '1,2,3'function foo () {} foo.bar = 1; foo.bar; // 1종종 오해되는 한 가지는 숫자 상수를 물체로 간주 할 수 없지만 실제로 숫자 상수는 여전히 물체로 간주 될 수 있다는 것입니다. JavaScript Parser가 지점 연산자를 구문 분석 할 때 실수를 저지르고 부동 소수점 기능으로 취급하기 때문입니다.
2.TOSTRING (); // syntaxError를 올립니다
실제로, 우리는 숫자 상수를 객체로 만들 수있는 여러 가지 방법이 있습니다.
2..TOSTRING (); // 두 번째 요점은 올바르게 인식됩니다 .2 .TOSTRING (); // 점에 남은 공간에 점 (2) .toString (); // 2가 먼저 평가됩니다
데이터 유형으로 객체
JavaScript의 객체는 해시 테이블로 사용할 수 있으며 주로 키와 값 사이의 해당 관계를 포함합니다.
{} 기호를 사용하여 간단한 객체를 만듭니다. 새로 생성 된이 객체는 Object.Prototype에서 상속되며 자체를 정의하는 속성을 포함하지 않습니다.
var foo = {}; // 새 빈 개체 // 값이 '테스트'속성이있는 새 개체 12var bar = {test : 12};객체의 속성에 액세스하십시오
두 가지 방법을 사용하여 JavaScript 객체, 즉 DOT 연산자에 액세스 할 수 있습니다. 그리고 브래킷 연산자 [].
var foo = {이름 : 'kitten'} foo.name; // kittenfoo [ 'name']; // kittenvar get = 'name'; foo [get]; // kittenfoo.1234; // syntaxerRorfoo [ '1234']; // 작동합니다두 연산자의 효과는 거의 동일합니다. 유일한 차이점은 브래킷 연산자가 속성의 동적 설정을 허용하고 속성 이름에 구문 오류가 발생할 수 있다는 것입니다. (위의 예에서 세 번째 사례가 설명되었습니다)
객체의 속성을 삭제하십시오
속성을 삭제하는 유일한 방법은 삭제를 사용하여 속성 값을 정의되지 않거나 null로 설정하는 것입니다.
var obj = {bar : 1, foo : 2, baz : 3}; obj.bar = undefined; obj.foo = null; delete obj.baz; for (var i in obj) {if (obj.hasownproperty (i)) {console.log ( ' + obj [i]); }}위의 출력 막대는 정의되지 않고 foo null, BAZ 만 실제로 삭제됩니다.
삭제는 변수가 아닌 속성 만 삭제할 수 있다고 설명해야합니다. 따라서 변수를 정의 할 때는 var를 작성하는 좋은 습관을 개발해야합니다. 언제든지 VAR 키워드를 사용하여 변수를 선언해야합니다. Var를 쓰지 않으면 변수는 글로벌 객체로 오인되어 새 속성을 생성하기 때문입니다.
이 예제는 대답을 분명히 밝히고 A는 변수이며 B는 전역 객체의 속성 일뿐입니다.
명명 된 객체의 속성
var test = { 'case': '나는 키워드이므로 문자열로 표시되어야합니다.'객체의 속성은 일반 문자 나 문자열로 명명 될 수 있습니다. 또한 JavaScript 파서의 잘못된 설계로 인해 위의 예에서 두 번째 표현 방법은 ECMAScript 5에 오류가 발생합니다.
오류의 이유는 Delete가 키워드이므로 String 상수의 이전 버전의 JavaScript Parser에 적응하도록 명명되어야합니다.