array
- 数字是特殊的对象
判断一个对象o是不是数组的最好方法是
Object.prototype.toString.call(0) === "[object array]"
- typeof=>object
- instanceof Array =>true,出错的可能在于不同窗体同名变量可能会混淆
- 改变本身的方法sort,reverse,push,pop,unshift,shift
- 产生新对象的方法join,concat,splice,slice
Array.prototype
Array.prototype 本身也是个数组。
Array.isArray(Array.prototype); // true
所以它也有 length 属性,这个值为 0,因为它是个空数组。
可以用来对类数组对象使用数组方法- 常用的Array.prototype.map()
- Array.prototype.forEach()
- Q:callback中第三个参数array作用:数组元素,元素索引,数组本身
不会改变自身的方法
下面的这些方法绝对不会改变调用它们的对象的值,只会返回一个新的数组或者返回一个其它的期望值。
- 返回一个由当前数组和其它若干个数组或者若干个非数组值组合而成的新数组。
-
判断当前数组是否包含某指定的值,如果是返回
true
,否则返回false
。 - 连接所有数组元素组成一个字符串。
- 抽取当前数组中的一段元素组合成一个新数组。
-
返回一个表示当前数组字面量的字符串。遮蔽了原型链上的
Object.prototype.toSource()
方法。 -
返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的
Object.prototype.toString()
方法。 -
返回一个由所有数组元素组合而成的本地化后的字符串。遮蔽了原型链上的
Object.prototype.toLocaleString()
方法。 - 返回数组中第一个与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
- 返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
Array.prototype.concat()
Array.prototype.includes()
Array.prototype.join()
Array.prototype.slice()
Array.prototype.toSource()
Array.prototype.toString()
Array.prototype.toLocaleString()
Array.prototype.indexOf()
Array.prototype.lastIndexOf()
Q:
toLocalString本地化是什么
数组变为字符串,并使用本地化(和自定义实现的)分隔符连接
Array.prototype.entries()
返回一个数组迭代器对象,该迭代器会包含所有数组元素的键值对。