ES6(ECMAScript6)知识总结(二)
一、数组新特性
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)知识总结(二)相关推荐
- day04-硅谷课堂-前端基础知识(二)
硅谷课堂第四天-前端基础知识 文章目录 硅谷课堂第四天-前端基础知识 一.NPM 1.NPM简介 1.1.什么是NPM 1.2.NPM工具的安装位置 2.使用npm管理项目 2.1.创建文件夹npm ...
- (硅谷课堂项目)Java开发笔记4:前端基础知识(二)
文章目录 (硅谷课堂项目)Java开发笔记4:前端基础知识(二) 一.NPM 1.NPM简介 1.1.什么是NPM 1.2.NPM工具的安装位置 2.使用npm管理项目 2.1.创建文件夹npm 2. ...
- BMP格式知识之二:16位,24位,32位的BMP图片算法是如何运算的
BMP格式知识之二:16位,24位,32位的BMP图片算法是如何运算的 原文:http://blog.csdn.net/qq445803843/article/details/46476433 这段代 ...
- Python基础数据之列表知识(二)
Python基础数据之列表知识(二) 一.列表的特点 二.列表的排序 三.列表的嵌套 1.嵌套的基本使用 2.嵌套的示例 四.列表的循环删除 五.列表相关知识链接 一.列表的特点 1.有序 2.独立 ...
- linux知识(二)互斥量、信号量和生产者消费者模型
linux知识(二)互斥量.信号量和生产者消费者模型 一.互斥量 产生原因 二.信号量 生产者消费者模型 一.互斥量 产生原因 使用多线程常常会碰到数据混乱的问题,那么使用互斥量,相当于"加 ...
- JavaScript知识(二)
JavaScript知识(二) 原文:JavaScript知识(二) 你要保守你心,胜过保守一切,因为一生的果效,是由心发出的.----O(∩_∩)O... ...O(∩_∩)O...老师因有事下午没 ...
- Android基础知识(二十):Notification、提醒式通知(横幅)踩坑与通知界面设置跳转
Android基础知识(二十):Notification.提醒式通知(横幅)踩坑与通知界面设置跳转 一.Notification通知与基本用法 通知Notification是Android系统中比较有 ...
- 概率论基础知识(二) 随机变量及其分布
概率论基础知识(二) 随机变量及其分布 1.随机变量 定义:设随机试验的样本空间为S={e}, X=X(e)是定义在样本空间S上的实值单值函数.称X=X(e)为随机变量. 这样一来,样本空间可以很好的 ...
- web前端知识总结二(css(其他)+移动web网页开发)
web前端知识总结二(css(其他)+移动web网页开发) 文章目录 web前端知识总结二(css(其他)+移动web网页开发) 字体图标 平面转换-位移 位移:绝对定位居中 开门效果 旋转 转换原点 ...
- 计算广告基础知识(二)
计算广告基础知识(二) 刘鹏老师<计算广告:互联网商业变现的市场与技术>读书笔记 计算广告基础知识二 重点名词 合约广告 受众定向 流量预测traffic forecasting 流量塑形 ...
最新文章
- 怎么将多个html组合_技巧分享之在HTML元素中添加逼真阴影的教程
- 1041 考试座位号 (15分)——17行代码AC
- excel appliacation 不能分配角色_用了5年Excel,换了这个神奇的报表工具,不禁感叹:国产真香...
- EasyVS -- 快速整理region的Visual Studio扩展
- centos nginx php5.3,centos6.2+nginx-1.2.3+php-5.3.17装配脚本
- 八、异常、java笔记
- C语言实现数字串转数字
- Null pointer access: The variable number can only be null at this location。 错误解决
- 贪吃蛇php代码下载,C语言贪吃蛇代码
- 专家教你简单又轻松的MD5解密方法,一看就会
- bash ps1变量_Linux:设置用户变量ps1
- vue 将echarts的图片导出成pdf文件
- 写代码写到70岁,是一种什么样的体验?
- Maye v1.3.4.0 类似Rolan简洁小巧易用的快速启动工具
- 深入理解计算机系统 练习题3.8 理解计算机二元操作
- 医学统计学 第五章(定性资料的统计描述)
- Java基础之map总结
- JDK11 API 帮助文档下载【中文版】
- 时代周刊-老牛上封面的那一期
- 空间零模型的显著性检验 surface-level(顶点,脑区),volumetric -level(体素,脑)校正——Spatial nulls for significance testing