Set和WeakSet都是数据结构而不是数据类型,他俩很相似,前者要放数组在他的数据结构里,后者要放对象在他的数据结构里。而放的方式,两者又有细微的差距。
对象
对象赋值
在ES5,如果我们在对象外声明变量,想让他作为对象里的值,我们需要些xx:xx,但在ES6中我们可以直接放进去
1 | let a = 1; |
对象key值构建
当key是后台定义的,而不是前台确定的,那当我们使用时只需要一个中括号就可以解决
1 | let key = 'a'; |
自定义对象方法
1 | let ob = { |
is比较方法
之前比较对象的元素是否相等我们用===,ES6引进了is方法,两者是有区别的,前者是同值相等后者是完全相等
1 | let ob1 = {a:NaN}; |
对象的连接
1 | let ob1 = {a:NaN}; |
函数和数组补漏
对象的函数解构
当后端传来的数据时json对象格式,当我们想要让他作为函数的参数来调用时就可以用到,具体如下所示
1 | let json = { |
数组的函数解构
1 | let arr =[1,2,3]; |
in
in的用处主要在于判断对象或数组里是否有元素,先来看看对象
1 | let json = { |
关于数组,并不能确定有没有某个元素,但能确定某索引位置是否有元素,而在ES5我们知道,当我们用.length来查看是否有元素时,如果是空就会返回0,这显然是错误的,下面我们来看看ES6
1 | let arr = ['','','']; |
数组循环方法
- forEach
这种方法会自动忽略掉空的情况,因此有的时候会出错
1 | let arr = ['1','2','3']; |
- filter
1 | let arr = ['1','2','3']; |
- some
1 | let arr = ['1','2','3']; |
- map
map是一种转换方法,详细的以后再说
1 | let arr = ['1','2','3']; |
将数组转换成字符串
首先是toString(),他只能将数组各个元素用逗号隔开
1 | let arr = ['1','2','3']; |
如果我们想用其他字符隔开各个元素,就可以使用join()
1 | let arr = ['1','2','3']; |
箭头函数和扩展
默认值
在ES6中给我们提供了可以在函数参数中使用默认值的操作,在学习箭头函数之前就先用ES5方法写函数
1 | function func(a,b=0){ |
主动抛出错误
只需要一行代码 throw new Error(‘’)
1 | function func(a,b=0){ |
严谨模式
与ES5不同,ES6中严谨模式的代码不需要必须写在最前面,而是可以写在函数体内,但是需要注意的是当函数参数有默认值时是会报错的,下面我就来举个错误实例,然后给出报错信息,我们可以很清楚的看出是因为默认值
1 | function func(a,b=0){ |
;
获得参数个数
当我们需要知道参数个数是,很简单,直接用length就可以知道,但是需要注意的是得到的只是必须传递的参数个数,带默认值的不包括在内
1 | function func(a,b=0){ |
箭头函数
箭头函数需要注意的就是如果你只想返回(return)一个值,就不需要用花括号,直接用箭头指向那个值即可,但是当代码不止一行时就需要用花括号来包住函数体,下面举个只返回个值得来看看箭头函数长什么样.还有就是箭头函数不能有new ,也就是说不能用在构造函数上
1 | let func = (a,b)=>a+b; |
数组知识
在ES6中新增了一些数组方法来简化代码量。ES6把所有对数组的操作都归结与Array.
json数组格式转换
首先来看看json格式,要注意与普通的json不一样的是必须后面要跟一个length
1 | let json = { |
下面我们只需一步就可以把它打印成数组形式,那就是调用from方法
1 | let arr = Array.from(json); |
Array.of()
of方法可以用于将一堆变量或字符串转化成数组的情况下。
1 | let arr = Array.of('1','2','3'); |
find 实例方法
find(function(value,index,arr){})三个参数缺一不可,用于寻找元素,比如
1 | let arr = [1,2,3,4,5,6,7]; |
函数里的函数体根据需要写,当然不仅是数字,也可用来查找字符串。
fill实例方法
fill方法是用来替换数组中元素的,他有三个参数,分别是替换值,起始位置(包括),末位置(不包括),栗子如下(实例方法由实例调用而不是Array.)
1 | let arr = [1,2,3,4,5,6,7]; |
数组遍历
在ES5中遍历数组我们采用的形式低效,ES6给我提供了高效的方式,如下所示
1 | let arr = [1,2,3,4,5,6]; |
当我们想得到索引时可以这样
1 | let arr = [1,2,3,4,5,6]; |
当我们需要索引和元素一起打印时可以这样
1 | let arr = [1,2,3,4,5,6]; |
entries()实例方法
当我们想要数组里的元素不按常规形式输出,而是想要像输出一个元素就来个一行样式
1 | let arr = [1,2,3,4,5,6]; |
这样我们就得到了Iterator {},然后就可以用next手动循环
1 | console.log(list.next().value); |