5.2 Array 类型

数组 length 属性的特色html

数组的 length 属性颇有特色 — 它不是只读的。所以经过设置这个属性,能够从数组的末尾移除或向数组添加新项es6

 

检测数组数组

JavaScript为啥不用 instanceof 检测数组,这里有个示例坑框架

对于一个网页,或者一个全局做用域而言,使用 instanceof 操做符就能获得满意的结果:函数

if( value instanceof Array ) {spa

  //  对数组执行某些操做3d

}htm

instanceof 操做符的问题在于,它假定单一的全局执行环境。若是网页中包含多个框架,那实际上就存在两个以上不一样的全局执行环境,从而存在两个以上不一样版本的 Array 构造函数。若是你从一个框架向另外一个框架传入一个数组,那么传入的数组与在第二个框架中原生建立的数组分别具备各自不一样的构造函数。对象

为了解决这个问题,es6新增了 Array.isArray() 方法,这个方法的目的是最终肯定某个值究竟是不是数组,而无论它是在哪一个全局执行环境中建立的。blog

 

数组的 sort 方法

为了实现排序,sort() 方法会调用每一个数组项的 toString() 转型方法,而后比较获得的字符串,以肯定如何排序。即便数组中的每一项都是数值,sort() 方法比较的也是字符串。

所以 sort() 方法能够接收一个比较函数做为参数,以便咱们指定哪一个值位于哪一个值的前面。比较函数接收两个参数,若是第一个参数应该位于第二个以前则返回一个负数,若是两个参数相等则返回0,若是第一个参数应该位于第二个以后则返回一个正数。

对于数值类型或者其 valueOf() 方法会返回数值类型的对象类型,可使用一个更简单的比较函数。因为比较函数是经过返回一个小于0、等于0或大于0的值来影响排序结果,所以减法操做就能够适当地处理全部这些状况。

 

 

 

数组的 concat() 方法

一、当不给 concat() 方法传递参数的状况下,它只是复制当前数组并返回副本

二、若是传递给 concat() 方法的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中

三、若是传递的值不是数组,这些值就会被简单地

相关文章
相关标签/搜索