A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© z-snow 中级黑马   /  2019-6-12 12:40  /  1100 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

### ES6
##### 一、let关键字
1、块级作用域:代码块作用域,一对{}产生的作用域
作用:声明变量
语法:let 变量名 = 值;
特点:
1、使用let声明的变量具有块级作用域,
2、没有变量提升,必须先申明再使用
3、存在暂时性死区,当用let声明变量后,就与该块级作用域绑定,变量在查找的时候,就不会往上级作用域查找![b696c2bf82550e2851e13414abb86d08.png](en-resource://database/533:1)


##### 二、const 关键字
作用:声明常量
语法:const 常量名  =  初始值;
特点:
1、声明常量时,必须赋初始值
2、具有块级作用域(同let声明的变量一样,只在当前的代码块中有效)
3、简单数据类型,字符串,数字的值不能变
复杂数据类型,内存地址不可变,值可以改变
![243355d970ddb24e6c3f3bc9e511d403.png](en-resource://database/535:1)

##### 三、解构赋值
提取数组或者对象,赋值给变量【简化代码】
《1》数组解构:[] = 数组    ([]在等号左边表示 数组解构,在等号右边表示数组)
语法:  let [变量1,变量2] = 数组
作用:把数组中第一个元素赋值给变量1,第二个元素赋值给变量2...
![04cdcd2dde2524e3df2f465a7b876174.png](en-resource://database/539:1)


《2》对象解构:{} = obj

语法:let {属性名:变量1,属性名:变量2,方法名:变量3}  = 对象
作用:把对象的属性1的值赋值给变量1, 把对象属性2的值赋值给变量2,把对象的方法赋值给变量3
let {属性名1,属性名2} = 对象
![11fe4e3a274aa158d17e6c1290a53e1e.png](en-resource://database/541:1)
特殊情况:如果变量名和属性名一致,变量名可以省略
![4c0c92a000df8ccabeeb72341ab4c318.png](en-resource://database/543:1)



##### 四、函数的扩展语法箭头函数&剩余参数:
《1》箭头函数:
1、把function关键字去掉 =>
![fdf4e59c79e3c5229ade790c989effcd.png](en-resource://database/549:1)

2、如果函数体内只有一行代码,将花括号和return去掉
![f4e5680c987ff57d095c46da882fcc8a.png](en-resource://database/547:1)

3、如果函数的形参只有一个,可将小括号去掉
![62361e22a232def2ced63d474372a66b.png](en-resource://database/545:1)


注意:箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this
![fc4071b97a8ddd0fc24f4b1db71952ec.png](en-resource://database/531:1)
《2》剩余参数:(打包三个点)
作用:将剩余的参数打包成一个数组,接收多个实参
语法:在形参变量前加上...
注意:剩余参数必须是最后一个形参
![33c024113ff5551f83cf740a1bdc4e78.png](en-resource://database/551:1)
与数组解构搭配使用,打包剩余的数组元素
![dfed29a52ffd21f9506eb21c555de9f9.png](en-resource://database/553:1)


###### 五、 数组的扩展语法
1、扩展运算符(扩展三个点)
作用:将数组拆分成参数序列
语法:在数组的前面加...
![16858c042f4615add004538508b8d9e3.png](en-resource://database/557:1)
数组扩展的方法:

1、Array.from()  将伪数组转为真数组,还可以遍历数组
![e2c4ec74ed94c06d8108116481b21c08.png](en-resource://database/559:1)

2、数组.find()  :查找并返回满足条件的第一个元素
![a1ba34245db0e959793e0610442fccf1.png](en-resource://database/561:1)

3、数组.findIndex()  :查找并返回满足条件的第一个元素的索引
![91e93634aabead6f205d4fda2d3f1fc7.png](en-resource://database/563:1)

4、数组.includes()  :判断是否有某个元素,返回值是一个布尔值

##### 六、字符串扩展语法
1、模板字符串【定义字符串的新方式】
let str= ·字符·;
特点:
- 字符串中可以使用变量:${变量}
- 字符串可以换行
- 字符串中可以调用函数: ${函数}

2、字符串新增方法:
str. startsWith('字符') :判断字符串是否以某个字符开始返回值是布尔值
str.endsWith('字符')  :判断字符串是否以某个字符结尾返回一个布尔值
str.repeat(数字)   :表示将前面的字符串重复多少次

####  set 集合
数组是一组数据的集合,数组中的每个数据叫元素
集合:是一堆数据的集合,但是数据不能重复
创建集合:
var s = new Set()
方法:
set.add('新添加的元素') 给set集合添加元素 可以链式写法
s4.add('a').add('b'); //向集合s4中添加a元素,再添加b元素
set.delete('元素') 删除集合中的某个元素 返回新的集合
set.has('元素')判断集合中是否有某个元素,返回布尔值
clear()  清空set集合,没有返回值
set.forEach(function(){}) 同数组一样遍历集合
属性:set.size,获取集合中的元素个数 同数组.length

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马