- 合并数组
var arr = [1,2,3,4],arr1 = [12,32,34,,45]
//concat方法
var newArr = arr.concat(arr1) //newArr = [1,2,3,4,12,32,34,,45]
//Array.prototype.push.apply
Array.prototype.push.apply(arr,arr1) //arr = [1,2,3,4,12,32,34,,45]
//apply
arr.push.apply(arr,arr1) //arr = [1,2,3,4,12,32,34,,45]
- Array.prototype.slice.call(arguments,1)
Array.prototype.slice.call(arguments,1)该语句涉及两个知识点。
arguments是一个关键字,代表当前参数,在javascript中虽然arguments表面上以数组形式来表示,但实际上没有原生数组slice的功能,这里使用call方法算是对arguments对象不完整数组功能的修正。
slice返回一个数组,该方法只有一个参数的情况下表示除去数组内的第一个元素。就本上下文而言,原数组的第一个参数是“事件名称”,具体像“click”,"render"般的字符串,其后的元素才是处理函数所接纳的参数列表。
- 检测对象类型
Object.prototype.toString.call();
那为什么不直接用obj.toString()呢?
这是因为toString为Object的原型方法,而Array
,function等类型作为Object的实例,都重写了toString方法。不同的对象类型调用toString方法时,根据原型链的知识,调用的是对应的重写之后的toString方法(function类型返回内容为函数体的字符串,Array类型返回元素组成的字符串.....),而不会去调用Object上原型toString方法(返回对象的具体类型),所以采用obj.toString()不能得到其对象类型,只能将obj转换为字符串类型;因此,在想要得到对象的具体类型时,应该调用Object上原型toString方法。
- Array与Array.of
Array参数只有一个,那么它规定的是数组长度,多个参数,是规定数组元素。。
Array.of()方法,无论参数是一个还是多个,都是规定的数组元素。 //方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型
var arr = Array(3) //arr.length =3 创建一个长度为3的数组,每一个数组元素是undefined。
var arr = Array.of(3) //arr = [3]
数组操作
最新推荐文章于 2024-07-18 22:30:00 发布