Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在这种情况下,如何理解array.foo?_Javascript_Arrays - Fatal编程技术网

Javascript 在这种情况下,如何理解array.foo?

Javascript 在这种情况下,如何理解array.foo?,javascript,arrays,Javascript,Arrays,我不知道如何理解这里的foo属性和数组。看起来foo属性被分配给了数组,但我认为它甚至不是有效的数组语法。有人能解释一下这个概念吗 var arr = []; arr[0] = 'a'; arr[1] = 'b'; arr.foo = 'c'; console.log(arr) // ['a','b',foo:'c'] This isn't valid array, but Chrome doesn't show any error. console.log(arr.foo) // 'c'

我不知道如何理解这里的foo属性和数组。看起来foo属性被分配给了数组,但我认为它甚至不是有效的数组语法。有人能解释一下这个概念吗

var arr = [];
arr[0]  = 'a';
arr[1]  = 'b';
arr.foo = 'c';
console.log(arr) // ['a','b',foo:'c']  This isn't valid array, but Chrome doesn't show any error.
console.log(arr.foo) // 'c'. 
console.log(arr.length); // 2, not 3
JavaScript数组是对象加上一些方法和一些涉及
length
属性的魔法,因此可以为它们分配随机属性

不要

(如果您通过JSON运行这样一个数组,那么这些额外的属性将丢失。)


在这里,它很好地解释了为什么会发生这种情况,以及其他一些您可能不太常见的事情。

如果有人使用
for in
循环或请求
Object.keys()
。您可以尝试声明
为“use strict”位于第一行,可能会出现错误。