以下两个不同的代码片段似乎与我等效:
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin"; 和
var myObject = {'A': 'Athens', 'B':'Berlin'}; 因为它们的行为都相同,并且typeof(myArray) == typeof(myObjects)(两者都产生“对象”)。
这些变体之间有什么区别吗? 问题来源于stack overflow
实际上,javascript中的所有内容都是对象,因此您可以通过在Array对象上设置任意属性来“滥用” Array对象。但是,这应该被认为是有害的。数组用于数字索引数据-对于非数字键,请使用对象。
下面是一个更具体的示例,为什么非数字键不“适合”数组:
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin";
alert(myArray.length); 这不会显示“ 2”,而是显示“ 0”-实际上,没有将任何元素添加到数组,仅将一些新属性添加到了数组对象。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。