답변:
첫 번째와 세 번째는 동일하며 새 배열을 만듭니다. 두 번째는 배열이 아닌 새로운 빈 객체를 만듭니다.
var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array
myObject["someValue"]또는 myObject.someValue. {}will에 의해 생성 된 빈 개체 는 물론 이러한 속성을 갖지 않지만 동일한 방식으로 할당 할 수 있습니다.myObject.someValue = "hello!"
var a = new Array(5)그리고 var b = [5], 다음 a≠ b(이후 a.length= 5 상태 b.length= 1 a[0]인 undefined상태 b[0]에서 5 정도로하고,.)
var a;와 var a = {};같은?
var myObject = {}; var와 동일 myObject = new Object();
따라서 두 번째 예는 Array일반 Object.
이것은 Array클래스와 마찬가지로 혼란 스러울 수 있으며 클래스입니다 . Object보다 정확하게 Array는의 하위 클래스입니다 Object. 따라서 대체로 Object의미론은 다음에 적용 할 수 있습니다 Array.
var o = [];
o.push('element1');
o.push('element2');
o['property1'] = 'property value'; // define a custom property.
console.log(o.property1);
console.log(o.length); // Outputs '2' as we've only push()'ed two elements onto the Array
o['property1'] = 'property value'하면 실제로 요소를 배열에 추가하는 것이 아니라 배열 객체 의 속성을 설정 합니다 . 혼란스러워? 내가 말했지;) JavaScript에서는 기본적으로 모든 것이 객체입니다. 다른 목적은, 같은 Array, RegExp... 더 기능이 기본 객체를 확장 할 수 있습니다. 일반 빈 개체가 중괄호로 만들어집니다 plain_obj = {}.