length属性保持大于等于数组元素个数,当length属性设置为一个小于当前长度的非负整数n时,当前数组中那些索引值大于或等于n的元素将从中删除;
可以通过Object.defineProperty()让数组的length属性变成只读;
数组方法:
join():将数组中的元素转换成字符串并连接在一起,不指定分隔符的情况下默认使用',',是string.split的逆向操作;
reverse():返回逆序的数组,进行了替换;
sort():排序;
concat():创建并返回一个新数组,不会递归扁平化数组的数组;
slice():返回数组的一个字数组,返回数组包含第一个参数指定的位置和所有到但不包含第二个参数指定的位置之间的所有数组元素;
splice():在数组中插入或删除元素,可改变原数组;
push(),pop();
unshift(),shift();
toString():将每个元素转化为字符串并且输出用逗号分隔的字符串列表;
toLocaleString():toString()的本地化版本;
ECMAScript 5 中的数组方法:
大多数情况下,调用提供的函数使用三个参数:数组元素、元素的索引和数组本身
forEach():从头至尾遍历数组,为每个元素调用指定的函数;
map():将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值;
filter():返回的数组元素是调用的数组的一个子集,返回的数组总是稠密的,可以用于压缩稀疏数组;
every():当且仅当针对数组中的所有元素调用判定函数都返回true,它才返回true;
some():当至少有一个元素调用判定函数返回true,它就返回true;
reduce()、reduceRight():使用指定的函数将数组元素进行组合,生成单个值;
indexOf()、lastIndexOf():搜索整个数组中具有给定值得元素,返回找到的第一个元素的索引,如果未找到就返回-1;
Array.isArray():判定给定对象是否为数组;
类数组对象:
数组与一般对象的不同:
1)当有新的元素添加到列表中时,自动更新length属性;
2)设置length为一个较小值将截断数组;
3)从Array.prototype中继承了一些有用的方法;
4)其类属性为“Array";
字符串的行为类似于只读的数组;