js中数组API以及ES6总结

1. 数组API
2. ES6:

1. 数组API:
遍历: 对数组中每个元素执行相同的操作
arr.forEach(): 对原数组中每个元素执行相同的操作
arr.forEach(function(elem,i,arr){
//对当前元素执行操作,并保存回原数组的当前位置
})
arr.map(): 复制出原数组中每个元素,执行相同操作后,放入新数组返回。原数组保持不变。
var newArr=arr.map(function(elem,i,arr){
return 新值
})
过滤和汇总:
过滤: 复制出原数组中符合条件的元素,组成新数组
var subArr=arr.filter(function(elem,i,arr){
return 判断条件
})
汇总: 将数组中每个元素进行统计,得出一个汇总值
var result=arr.reduce(function(prev,elem,i,arr){
//prev: 可获得截止到当前元素的临时汇总值
return prev+elem;
}, base)

2. ES6:
特点: 在不改变原理的基础上,极简化了代码,并解决了部分广受诟病的缺陷。

let:
什么是: 代替var声明变量
为什么: 避免声明提前,并添加块级作用域
何时: 所有的var都要用let代替
兼容: 其实let就是普通的匿名函数自调
强调: 1. let禁止提前使用当前变量
2. 块内的变量,出了块,不能用了!

参数增强:
1. default: 默认值,在定义函数时,可为参数提前指定默认值
如何: function fun(参数, 参数, 参数=默认值)
强调: 有默认值的参数必须放在末尾!
兼容: base=base!==undefined?base:10000;
2. rest: 剩余参数
什么是: 在不确定参数个数时,也能收集所有传入的参数值
何时: 代替arguments
为什么:
1. arguments不是纯正的数组,无法使用数组的API
2. arguments只能获得所有参数值,无法有选择的获得部分参数值
rest的优势:
1. 得到的是一个纯正的数组!
2. 可有选择的接住部分参数值
如何:
定义函数时: function fun(参数1, 参数2,…, …数组名)
调用时: 数组中会接住除之前参数之外的剩余参数值
兼容: 将arguments转为数组:
基本思想: 复制出arguments中每个元素,放入新数组中返回
var args=Array.prototype.slice.call(arguments,1)
//arguments.slice(1)
[].slice.call(arguments,1)
3. spread: 散播, 将一个数组参数打散为单个数值,再传入给函数
何时: 如果函数要求参数值单个传入,但给定的值是一个数组时
如何:
调用时: fun(参数值1,参数值2,…, …数组)
兼容:
fun.apply(null,数组)

箭头函数: 对所有回调函数和匿名函数自调的简化!
三句话:
1. 去掉function改=>
2. 如果只有一个参数,可省略()
3. 如果函数体只有一句话可省略{},
如果只有一句话,可省略return
问题: 箭头函数内外公用同一个this
所以: 只要希望函数内外的this不通用时,就不能用箭头函数

模板字符串:
什么是: 支持换行和动态生成内容的字符串
何时: 今后不允许再用+拼接字符串!
如何: 整个模板字符串,都要用反引号(`)包裹
模板字符串内,天生支持换行
模板字符串中支持动态生成内容(js表达式):
动态生成的内容必须: ${js表达式}

解构:
什么是: 将对象中的成员,分别取出,分别使用。
何时: 简化对象中成员的使用
如何: 3种:
1. 数组结构: 下标对下标:
var date=[2018, 8, 3]
var [y,m,d]=date;
y=2018 m=8 d=3
鄙视: 不声明第三个变量,交换两个变量的值
对数字类型: 2种:
1. a+=b, b=a-b, a-=b
2. a^=b, b^=a, a^=b
对任意类型: 2种:
1. b=[a,a=b][0]
2. [a,b]=[b,a]

2. 对象解构: 属性对属性
var eric={ id:1001, ename:"埃里克", salary:12000}
var {id, ename, salary }=eric;
id=1001, ename="埃里克", salary=1200

方法解构:
var user={
signin:function(){ … },
signup:function(){ … },
signout:function(){ … },
isAuthenticated(){ … }
}
var {signin,signup}=user;

3. 参数解构:
何时: 不确定参数的个数,顺序时
如何: 2步:
1. 定义函数时: 将所有参数定义为一个对象中的属性
2. 调用函数时: 将要传入的所有属性值,都放在一个对象中传入。

for of:
什么是: 遍历数组或类数组对象中的每个元素
遍历:
1. for(var i=0;i<arr.length;i++)
即可获得元素的位置i,又可获得元素的内容arr[i]
控制遍历的位置和顺序
2. arr.forEach((elem,i,arr)=>{
也可获得元素的位置, 和元素内容elem
但无法控制遍历!
})
3. for(var elem of arr){
仅可获得元素内容elem
无法获得位置i,也无法控制遍历
}

vs for in
for of 只能遍历数组或类数组对象(都是数字下标)
for in 专门用于遍历关联数组或对象(都是自定义字符串下标)

原文地址:https://www.cnblogs.com/wangpenglei/p/9501547.html

时间: 2024-10-21 04:03:49

js中数组API以及ES6总结的相关文章

js中数组API之foreach、map的用法

forEach语法: arr.forEach(function(value, index, array){--}) 实例: // forEach var arr = [1,2,3,4,5]; arr.forEach(function(value, index, array){ array[index] *= 2; }); console.log(arr); //[2,4,6,8,10] map语法: var newArr = arr.map(function(value, index, arra

js中数组去重的几种方法

js中数组去重的几种方法         1.遍历数组,一一比较,比较到相同的就删除后面的                 function unique(arr){                         for(var i=0;i<arr.length;i++){                                 for(var j=i+1;j<arr.length;j++){                                         if(ar

js中数组操作

var selectedCodeArray = []; var num = $.inArray(值, selectedCodeArray)  //值在数组中的位置 selectedCodeArray.push(值码); selectedCodeArray.splice(num, 1);//从数组中删除 js中数组操作,布布扣,bubuko.com

JS数组去重,js中数组(Array)的排序(sort)

JS数组去重 var ddd = [1,2,4,5,2, 222,1,5,6]; var uq = {}; var rq = []; for(var i=0; i<9; i++){ if(!uq[ddd[i]]){ uq[ddd[i]] = true; rq.push(ddd[i]); } } return rq; js中数组(Array)的排序(sort)注意事项 var arrDemo = new Array(); arrDemo[0] = 10; arrDemo[1] = 50; arrD

js中数组与对象的遍历

数组遍历: 1.js基本的for遍历 2.jquery提供的each函数 ----------------------------------- $.each(array, function(){ alert(this); }); ----------------------------------- 对象遍历: js: --------------------------------------------- for (var k in obj) { alert(obj[k]): } jque

js中数组Array的操作

JS中数组有很多操作,作为前端多多少少知道点,但每次要用时都需要去百度,有点麻烦,所以在这儿做个备忘,简单总结些平时最常用的数组操作. shift:删除原数组第一项,并返回删除元素的值: var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 注:如果数组为空则返回undefined unshift:将参数添加到原数组开头,并返回数组的长度 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); /

js中数组增删查改unshift、push、pop、shift、slice、indexOf、concat、join

js中数组增删查改unshift.push.pop.shift.slice.indexOf.concat.join 原文地址:https://www.cnblogs.com/mahmud/p/10301590.html

js中数组遍历for与for in区别(强烈建议不要使用for in遍历数组)

转自: http://www.cnblogs.com/javaee6/p/4142270.html?utm_source=tuicool&utm_medium=referral js中遍历数组的有两种方式 1 2 3 4 5 6 7 8 9 var array=['a'] //标准的for循环 for(var i=1;i<array.length;i++){     alert(array[i]) } //foreach循环 for(var i in array){     alert(ar

js中数组Array的一些常用方法总结

var list = new Array()是我们在js中常常写到的代码,今天就总结一下Array的对象具有哪些方法. list[0] = 0; list[1] = 1; list[2] = 2; 或者这样声明:var list = [0,1,2]; (1) shift():  alert(list.shift()); //删除数组的第一个元素,返回删除的值.这里是0  alert(list.length); //返回的数组长度是2 (2) unshift( i , j ): list.unsh