JavaScript 数组大括号与方括号

IT技术 javascript arrays
2021-03-08 23:49:17

以下每个数组定义之间有什么区别。

var myArray = [];
var myArray = {};
var myArray = new Array();
2个回答

第一个和第三个是等效的,并创建一个新数组。第二个创建一个新的空对象,而不是一个数组。

var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array
var a;var a = {};一样吗?
2021-04-19 23:49:17
带括号或点符号:myObject["someValue"]myObject.someValue由创建的空对象{}当然不会有这些属性,但您可以以相同的方式分配给它们:myObject.someValue = "hello!"
2021-04-20 23:49:17
我们如何访问对象的值。
2021-04-21 23:49:17
在这种特殊情况下,1 和 3 具有相同的效果。然而,有时他们的行为会有所不同。例如,如果var a = new Array(5)and var b = [5],则ab(因为a.length= 5 而b.length= 1,a[0]undefinedwhileb[0]是 5,依此类推。)
2021-04-28 23:49:17

var myObject = {}; 相当于 var myObject = new Object();

因此,第二个示例不是 anArray而是一般Object.

这可能会让人感到困惑,因为它Array是一个类并且Object是一个类 - 更准确地说ArrayObject. 因此,总的来说,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
property1 存储在哪里。是不是在数组中
2021-04-17 23:49:17
@Pinkie:现在越来越混乱了:数组也是对象通过这样做o['property1'] = 'property value',您实际上并不是向数组添加元素,而是设置数组对象的属性使困惑?我告诉过你 ;) 在 JavaScript 中,基本上一切都是对象。其他对象,例如Array, RegExp,... 扩展具有更多功能的基本对象。使用大括号创建一个普通的空对象plain_obj = {}
2021-05-03 23:49:17