当 js 数组 key 有一个为数值时,这个数组的长度将是最大 key + 1。如下:

当 js 数组 key 都为字符串时,这个数组的长度的长度为 0。如下:

如果不知道这个区别,那么我们在使用 for 循环时可能会遇到麻烦,如下:

上面两段分别是检测对于同一个数组,使用 for 与 for in 的执行效率。这时就体现出 for in 的优势来了。

还有一点就是对于数值 key 加不加引号都为理解为 数值。

为什么会有这样的疑惑,那就是因为PHP 不是这样的。如下:

对于 Java等强类型语言就不会有这个问题,定义时必须指定长度~~。共勉之~