JS数组异常?

注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。

  • ==比较之前会先进行类型转换,即不会对类型进行比较。例如:
  • ===会比较数值和类型。例如:

JS在使用运算符号或者对比符时,会自带隐式转换,规则如下:

  • 如果对象的属性值之一本身就是一个对象
  • 如果属性值中的一个是NaN(在JavaScript中,是不是等于自己唯一的价值?)
  • 如果一个属性的值为undefined,而另一个对象没有这个属性(因而计算结果为不确定?)
  • 无法再意外创建全局变量。
  • 会使引起静默失败(silently fail,即:不报错也没有任何效果)的赋值操抛出异常。
  • 试图删除不可删除的属性时会抛出异常(之前这种操作不会产生任何效果)。
  • 要求函数的参数名唯一。
  • 捕获了一些常见的编码错误,并抛出异常。
  • 禁用令人困惑或欠佳的功能。
  • 缺失许多开发人员已经习惯的功能。
  • 以不同严格模式编写的脚本合并后可能导致问题。
  • map: 遍历数组,返回回调返回值组成的新数组
  • join: 通过指定连接符生成字符串
  • concat: 连接数组,不影响原数组, 浅拷贝
  • push:添加新元素到数组末尾,返回数组长度
  • pop:移除数组最后一个元素,返回元素本身
  • unshift:添加新元素到数组开头,返回数组长度
  • shift:移除数组首个元素,返回元素本身
// 此处的array接受map方法运算之后的返回值 // 但是map方法并不能改变原来的数组
  • 能用forEach()做到的,map()同样可以。反过来也是如此。
  • map()会分配内存空间存储新数组并返回,forEach()不会返回数据。

各种循环遍历的比较地址:

  • typeof: 适合基本的数据类型和函数
  • instanceof: 判断对象类型,基于原型链去判断。
  • constructor: 返回对创建此对象的函数的引用
存储的值大小不定,可动态调整
由系统自动分配内存空间 由开发人员通过代码分配
空间大,但是运行效率相对较低
无序存储,可根据引用直接获取
}

记录一下整理的js数组方法,免得每次要找方法都找不到。图片有点多,注意流量,嘻嘻!

三个参数分别是:数组元素、元素的索引、数组本身

说明:该方法无法提前终止运行,如果要提前终止运行,只能使用try块中,然后抛出一个异常。 小技巧:如果数组是个数组对象形式可以直接操作数组元素改变原始数组本身,因为对象是个引用数据类型嘛! 实例如下: var log=console.log; var data=[1,2,3,4,5]; var sum =0; data.forEach(value=>{

map() —>映射 使用热度:经常用 是否改变原始数组:否 返回:返回一个新函数 参数:

三个参数分别是:数组元素、元素的索引、数组本身

filter() —>过滤 使用热度:常用 是否改变原始数组:否 返回:返回过滤后的数组 参数:

三个参数分别是:数组元素、元素的索引、数组本身

every() —>检测 使用热度:不常用 是否改变原始数组:否 返回:true或者false 参数:

三个参数分别是:数组元素、元素的索引、数组本身

说明:当且仅当针对数组中的所有元素调用绑定函数都返回true时,它才返回true。 注意:一旦every或者some已经确定了改返回什么值得时候就不会遍历数组了。根据数学上的惯例,在空数组调用时,every返回true,some返回false。 实例如下: var log=console.log; var data=[1,2,3,4,5]; var

some() —>检测 使用热度:不常用 是否改变原始数组:否 返回:true或者false 参数:

三个参数分别是:数组元素、元素的索引、数组本身

reduce() —>简化 使用热度:不常用 是否改变原始数组:否 返回:返回一个值 参数:

四个参数分别是:初始化值/数组元素、数组元素、元素的索引、数组本身

说明:第一个参数是到目前为止的简化操作累计的结果 注意:如果没有初始化值,第一次调用函数的第一个参数就是第一个数组元素,第二个参数则是第二个数组元素。如果有初始化值,第一次调用函数的第一个参数就是初始化值,二个参数则是第一个数组元素。 实例如下: var log=console.log; var data=[1,2,3,4,5]; var

reduceRight() —>简化 使用热度:不常用 是否改变原始数组:否 返回:返回一个值 参数:

四个参数分别是:初始化值/数组元素、数组元素、元素的索引、数组本身

说明:第一个参数是到目前为止的简化操作累计的结果。不同于reduce这个仅仅是从右到左计算。 注意:如果没有初始化值,第一次调用函数的第一个参数就是第一个数组元素,第二个参数则是第二个数组元素。如果有初始化值,第一次调用函数的第一个参数就是初始化值,二个参数则是第一个数组元素。 实例如下: var log=console.log; var

indexOf() —>搜索 使用热度:经常用 是否改变原始数组:否 返回:返回数组索引或者-1 参数:

从数组哪个索引开始搜索

说明:如果能搜索到结果将返回第一个索引,如果搜索不到就返回-1 注意:如果第二个参数是负数,指的是从数组元素末尾的偏移量位置开始向后搜索,而不是到偏移量位置就截止搜索了,这里是很容易和splice弄混的。 实例如下: var log=console.log; var data=[1,2,3,4,5]; var

lashIndexOf() —>搜索 使用热度:经常用 是否改变原始数组:否 返回:返回数组索引或者-1 参数:

从数组哪个索引开始搜索

作者:买 辣 椒 也 用 券

}

我要回帖

更多关于 函数处理数组输入时行为异常 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信