一、数组新特性

1、扩展运算符

1)相当于rest方法的逆运算,把数组转换为用逗号隔开的参数列表;

function fn(x,y,z) {console.log(x,y,z);
}
var arr = [1,2,3];
fn(...arr);

2)应用

●复制数组

var arr1 = [1,2,3];
var arr2 = [...arr1];

●合并数组

var a = [1,2,3];
var b = [4,5,6];
var c = [7,8,9];
//ES5
var d = a.concat(b,c);
//ES6
var e = [...a,...b,...c];

●用于解构赋值

let [a,b,...args] = [1,2,3,4,5];

●用于字符串

let arr = [..."hellow"];

●适用于所有的类数组集合(实现了遍历器接口的数据类型)

2、Array构造函数新增方法

●Array.from() 将类数组对象转换为纯数组

●Array.of(a,b,c) 将参数列表返回一个数组,相当于创建数组 Array.of(3) != new Array(3)

3、数组对象新增方法

●find(callback) 返回数组中第一个满足条件的元素

let arr = [9,16,-9,7,56];
var result = arr.find(function(val,index){
if(val > 10) {return true;
}return false;
})

●findindex(callback)  返回数组中第一个满足条件的元素的索引

●entries()  帮助数组遍历第一个key值与value值

let arr = [9,16,-9,7,56];
for (let [key,value] of arr.entries()) {console.log(key,value);
}

●keys()  帮助数组遍历所有的key值

●includes()   检索数组是否包含某个值,返回布尔值

●Array.isArray(arr)

●filter(callback)

1)过滤数组单元,将满足条件的元素过滤;

2)callback ==>  function(value,index) {}

3)自动将每一个元素放入callback中进行处理,如果返回值为true,将元素放入新书徐中,否则不操作;

4)形参value,代表数组中的每一个值;

5)形参index,代表数组中每一个值的下标;

●map(callback) 对数组进行遍历,将计算后的值返回新数组,callback同上,不返回bool,返回具体值;

●some(callback)  对数组进行遍历,只要有一个满足条件,则返回true,并终止遍历,否则返回false;

●every(callback)  对数组进行遍历,如果有一个不满足条件,则返回false,并终止遍历,否则返回true;

●forEach(callback)  遍历数组,无返回值;

●reduce(function(preValue, nowValue, index, arrSelf) {return preValue+nowValue})    累加数组单元,preValue是上一个值,nowValue是当前值,index是当前值下标,arrSelf是当前数组;

二、对象的新增特性

1、属性及方法的简洁表示(key名与value名相同)

let name = "ce";let age = 18;//ES5var obj1 = {name:name,age:age,run:function() {console.log("快速跑")}
}// ES6var obj2 = {name,age,run() {console.log("快速跑")}
}

2、Object.is()相当于全等,但是有区别 Object.is(1,2)    Object.is(NaN,NaN)   Object.is(0,-0)

3、Object.assign(obj1,obj2,obj3)合并对象,所有对象都会并到obj1,如果是相同的属性,后边的对象的属性值会对前边的进行覆盖;

4、Object.keys(obj)将obj的key值返回一个纯数组;

5、Object.values(obj)  将obj的value值返回一个纯数组;

6、Object.entries(obj) 返回一个二维数组,每一个小数组都是一对[key,value];

三、SET数据结构

1、类似于数组,但是成员唯一,没有索引;

2、var set = new Set(x)   x是数组,类数组,字符串;

3、实现数组去重

let arr = [1,4,3,1,6,7,8,3,4,7,1,6];
let set = new Set(arr);
// let newArr = [...set];
let newArr = Array.from(set);

4、获取set的长度不是length而是size;

5、方法

●add(x)

●delete(x)  x不是索引,而是set中具体的值;

●has(x)  验证是否存在,返回布尔值;

●clear()  不需要参数,清除所有成员;

6、可以使用for of与forEach对set进行遍历;

7、set.values()===set.keys()      set.entries()

四、WeakSet

1、与set类似,成员唯一,成员必须是对象,其中的对象都是弱作用;

2、语法:let west = new WeakSet({},{})

3、不能遍历,也没有size属性;

4、方法:

●add()

●delete()

●has()

五、Map

1、与对象类似,键值对组成的集合,键的类型可以是任意类型,构造函数的参数可以是一个二维数组;

2、语法:let Map = new Map([["name","cege"],["age","18"],["height","186"]]);

3、属性  size获取长度;

4、方法:

●get(key)获取对应的value值;

●set(key,value)  添加/修改键值对;

●has()

●clear()

5、使用for of/forEach/values()/keys()/entries()遍历

六、WeakMap

1、类似于Map,键必须是对象,键所指向的对象都是弱作用

2、不可遍历

3、方法

●add()

●set()

●has()

●clear()

ES6(ECMAScript6)知识总结(二)相关推荐

  1. day04-硅谷课堂-前端基础知识(二)

    硅谷课堂第四天-前端基础知识 文章目录 硅谷课堂第四天-前端基础知识 一.NPM 1.NPM简介 1.1.什么是NPM 1.2.NPM工具的安装位置 2.使用npm管理项目 2.1.创建文件夹npm ...

  2. (硅谷课堂项目)Java开发笔记4:前端基础知识(二)

    文章目录 (硅谷课堂项目)Java开发笔记4:前端基础知识(二) 一.NPM 1.NPM简介 1.1.什么是NPM 1.2.NPM工具的安装位置 2.使用npm管理项目 2.1.创建文件夹npm 2. ...

  3. BMP格式知识之二:16位,24位,32位的BMP图片算法是如何运算的

    BMP格式知识之二:16位,24位,32位的BMP图片算法是如何运算的 原文:http://blog.csdn.net/qq445803843/article/details/46476433 这段代 ...

  4. Python基础数据之列表知识(二)

    Python基础数据之列表知识(二) 一.列表的特点 二.列表的排序 三.列表的嵌套 1.嵌套的基本使用 2.嵌套的示例 四.列表的循环删除 五.列表相关知识链接 一.列表的特点 1.有序 2.独立 ...

  5. linux知识(二)互斥量、信号量和生产者消费者模型

    linux知识(二)互斥量.信号量和生产者消费者模型 一.互斥量 产生原因 二.信号量 生产者消费者模型 一.互斥量 产生原因 使用多线程常常会碰到数据混乱的问题,那么使用互斥量,相当于"加 ...

  6. JavaScript知识(二)

    JavaScript知识(二) 原文:JavaScript知识(二) 你要保守你心,胜过保守一切,因为一生的果效,是由心发出的.----O(∩_∩)O... ...O(∩_∩)O...老师因有事下午没 ...

  7. Android基础知识(二十):Notification、提醒式通知(横幅)踩坑与通知界面设置跳转

    Android基础知识(二十):Notification.提醒式通知(横幅)踩坑与通知界面设置跳转 一.Notification通知与基本用法 通知Notification是Android系统中比较有 ...

  8. 概率论基础知识(二) 随机变量及其分布

    概率论基础知识(二) 随机变量及其分布 1.随机变量 定义:设随机试验的样本空间为S={e}, X=X(e)是定义在样本空间S上的实值单值函数.称X=X(e)为随机变量. 这样一来,样本空间可以很好的 ...

  9. web前端知识总结二(css(其他)+移动web网页开发)

    web前端知识总结二(css(其他)+移动web网页开发) 文章目录 web前端知识总结二(css(其他)+移动web网页开发) 字体图标 平面转换-位移 位移:绝对定位居中 开门效果 旋转 转换原点 ...

  10. 计算广告基础知识(二)

    计算广告基础知识(二) 刘鹏老师<计算广告:互联网商业变现的市场与技术>读书笔记 计算广告基础知识二 重点名词 合约广告 受众定向 流量预测traffic forecasting 流量塑形 ...

最新文章

  1. 怎么将多个html组合_技巧分享之在HTML元素中添加逼真阴影的教程
  2. 1041 考试座位号 (15分)——17行代码AC
  3. excel appliacation 不能分配角色_用了5年Excel,换了这个神奇的报表工具,不禁感叹:国产真香...
  4. EasyVS -- 快速整理region的Visual Studio扩展
  5. centos nginx php5.3,centos6.2+nginx-1.2.3+php-5.3.17装配脚本
  6. 八、异常、java笔记
  7. C语言实现数字串转数字
  8. Null pointer access: The variable number can only be null at this location。 错误解决
  9. 贪吃蛇php代码下载,C语言贪吃蛇代码
  10. 专家教你简单又轻松的MD5解密方法,一看就会
  11. bash ps1变量_Linux:设置用户变量ps1
  12. vue 将echarts的图片导出成pdf文件
  13. 写代码写到70岁,是一种什么样的体验?
  14. Maye v1.3.4.0 类似Rolan简洁小巧易用的快速启动工具
  15. 深入理解计算机系统 练习题3.8 理解计算机二元操作
  16. 医学统计学 第五章(定性资料的统计描述)
  17. Java基础之map总结
  18. JDK11 API 帮助文档下载【中文版】
  19. 时代周刊-老牛上封面的那一期
  20. 空间零模型的显著性检验 surface-level(顶点,脑区),volumetric -level(体素,脑)校正——Spatial nulls for significance testing

热门文章

  1. pdf转换成jpg python_Python将PDF转成图片PNG和JPG
  2. 最短路 POJ2387
  3. 智能随机分组系统(代码带备注)
  4. R语言实现随机分组(按照学号或者是姓名随机分组)
  5. h5抽奖大转盘开发笔记小结,涉及到的知识点和包资源
  6. 逻辑清晰四个实用原则(金字塔原理)
  7. B站 下载版权保护视频
  8. 目前三大前端主流框架
  9. chrome浏览器使用
  10. 云计算是继互联网计算机后在信息时代,云计算本质是什么?