Javascript 数组初始化问题
我有以下代码:Javascript 数组初始化问题,javascript,Javascript,我有以下代码: var intrebari = new Array(); var i = 0; intrebari[i]['enunt'] = 'test'; alert(intrebari[i]['enunt']); 问题是,当我运行它时,它表示intrebari未定义。为什么?是interbari[0]为空,因此它不能是对象-要添加到数组中,请使用push而不是索引 var intrebari = []; intrebari.push({ 'enunt': 'test' }); alert
var intrebari = new Array();
var i = 0;
intrebari[i]['enunt'] = 'test';
alert(intrebari[i]['enunt']);
问题是,当我运行它时,它表示
intrebari
未定义。为什么?是interbari[0]为空,因此它不能是对象-要添加到数组中,请使用push而不是索引
var intrebari = [];
intrebari.push({ 'enunt': 'test' });
alert(intrebari[i]['enunt']);
这将起作用是的interbari[0]为空,因此它不能是对象-要添加到数组中,请使用push而不是索引
var intrebari = [];
intrebari.push({ 'enunt': 'test' });
alert(intrebari[i]['enunt']);
这将起作用您需要为
intrebari[i]
分配一些内容,然后才能访问它的任何属性,“默认情况下”它的值是未定义的
,没有任何属性。例如:
intrebari[i] = new Object();
intrebari[i]["enunt"] = "test";
alert(intrebari[i]["enunt"]);
您需要将某些内容分配给
intrebari[i]
,然后才能访问它的任何属性,“默认情况下”它的值是undefined
,没有任何属性。例如:
intrebari[i] = new Object();
intrebari[i]["enunt"] = "test";
alert(intrebari[i]["enunt"]);
或者,可以将
intrebari[i]
设置为刚好{}
,然后原始的赋值就可以了。但是这个答案是正确的。或者,intrebari[i]
可以设置为只{}
,然后原始的赋值就可以了。但这个答案是正确的。不,它不应该是一个新数组;它与字符串键一起使用,所以它更可能是一个对象。@Pointy:修复了它。但是这是使用对象而不是数组的唯一原因吗?数组有自己的行为。将数组用作对象是可行的,因为数组是对象。但是,如果程序员不太清楚事情是如何工作的,有时会出现奇怪的效果;它与字符串键一起使用,所以它更可能是一个对象。@Pointy:修复了它。但是这是使用对象而不是数组的唯一原因吗?数组有自己的行为。将数组用作对象是可行的,因为数组是对象。但是,如果程序员不太清楚事情是如何工作的,有时可能会产生奇怪的效果。请注意,[]
与“new Array()”相同,{}
与“new Object()”相同。为了节省键入的时间:-)请注意,[]
与“new Array()”相同,{}
与“new Object()”相同。为了节省您的打字时间:-)