var a = Array(3)生成的数组是不含'0','1','2'的
就像window.Object window.Function String一样,他们都是全局对象
到底什么是数组
用Array构造出来的对象,就是数组
数组和对象的差别
为什么上方是数组,而下方就是对象呢,只是因为构造方法的不同吗
答案:因为他们指向的共用属性不同
对象不拥有数组的特点。
数组之所以为数组,因为你使用了let i=0;.....)其实用别的也可以,其实用for key in a也可以
伪数组
如果__p无法链到Array.prototype(没有.push方法),那么你就是伪数组
数组api之forEach
他需要接受一个函数(对象),这个函数必须接受两个参数(三个),第一个参数一定是数组的value,第二个参数一定是数组的key(第三个参数是数组自己)
原理解释
数组api之sort
更改原值,原地排序。
x-y; y-x;排序的依据是什么无所谓,要尝试,第一个错了就用第二个。
join
主要用于数组变成字符串
concat
连接
特殊用法:一般用来复制产生一个新的数组
map
map(地图,即映射,就是按比例缩小)
和forEach差不多,但是有返回值;forEach(undefined),map(新数组)
filter
过滤,不改变原来的数组
reduce
没有key,只有value