ES6环境:
webpack3.x,Traceur
变量声明let、const:
之前:var a= 10
作用域:
全局,函数作用域
例子:

全局作用域

函数作用域
let 相当于之前的var,变量声明
const 常量,定义好了不能改变
作用域:
块级作用域{}

let不存在变量提升

在同一个块内不能重复定义变量

for循环,父级作用域

函数中,并不存在父级作用域,报错

对象是一个引用关系

拓展:冻结对象,不可拓展
注意:
1、没有预解析,不存在变量提升。即在代码块内,只要let定义变量,在之前使用,都会报错。
2、不可以重复定义变量。
3、for循环,for循环里面是父级作用域。
4、const变量不可以修改。

var与let区别

解决for循环问题
解构赋值:
在使用ajax交互时,十分实用。
简单案例:

简单的解构赋值案例
json格式数据需要注意:左右两边格式要保持一致

json格式数据的解构赋值
可以给定默认值:

给定默认值

给定默认值
注意:问题一

作用域问题,需要立即执行
交换两个数的值:

交换两个数的值

封装到函数中

函数传参
字符串模板以及字符串新增
字符串模板:
`${}`,可以随意换行

字符串模板
字符串新增方法:
includes():字符串查找,返回true或false

includes()方法
举个栗子:

查询用户使用的浏览器是否为Chrome
startsWith():判断字符串以谁开头,返回true或false
endsWith():判断字符串以谁结尾,返回true或false

startsWith()、endsWith()
repeat(次数):重复字符串

repeat()
padStart(整个字符串的长度,填充的字符串):填充字符串,开头
padEnd(整个字符串的长度,填充的字符串):填充字符串,结尾

padStart()、padEnd()
函数默认参数、箭头函数、剩余参数
默认参数:

结合解构赋值
扩展运算符、reset运算符: ...
扩展数组

重置数组

展开数组

剩余参数

复制数组
箭头函数:=>

返回最大值

将参数从小到大排列

this问题 :定义函数所在的对象,不在是运行时所在的对象

箭头函数不可当构造函数

构造函数
注意:
1、this问题,定义函数所在的对象,不在是运行时所在的对象。
2、箭头函数中,不存在arguments,使用...
3、箭头函数不能当构造函数