let

  1. 声明变量的新方法。
  2. 变量无法重复声明。
  3. 块级作用域。也就是说let只在代码块中生效,包括if、else等花括号中的变量不会定义到全局。
  4. 不存在变量提升。也就是说,在声明变量之前使用变量会报错。
  5. 不影响作用域链效果。也就是,在函数中往上找变量,函数外面由let定义的变量,仍然能找到。

ES6的详细注解_数组


用let实现循环遍历。这是因为只在块级作用域中生效。

ES6的详细注解_开发语言_02

const

用来声明一个常量,值没有办法被修改的。

  1. 一定要赋初始值。
  2. 一般常量使用大写(潜规则)
  3. 常量的值没有办法被修改。
  4. 块级作用域
  5. 对于数组和对象的元素修改,不算对常量进行修改,不会报错。(因为指向的地址并未发生改变)

变量的解构赋值

用一定的模式从数组和对象中提取值。

数组的解构

ES6的详细注解_前端_03

对象的解构

ES6的详细注解_开发语言_04

模板字符串

`我也是一个字符串哦~`
  1. 内容中可以直接出现换行符
  2. 变量拼接,使用​​${}​

对象的简化写法

属性名和属性值相同可以只写一个。

ES6的详细注解_javascript_05


函数也可以直接写。

ES6的详细注解_默认值_06

箭头函数

ES6的详细注解_数组_07


ES6的详细注解_默认值_08

  1. 箭头函数中的this是静态的,始终指向声明函数时所在作用域下的this值。
  2. 不能作为构造化实例对象
  3. ES6的详细注解_数组_09

  4. 不能使用arguments变量
  5. ES6的详细注解_默认值_10

  6. 箭头函数的简写
  7. ES6的详细注解_javascript_11


  8. ES6的详细注解_开发语言_12

函数参数的默认值

传了参数我们就使用传入的参数,没有传入实参,我们就使用默认值。

ES6的详细注解_数组_13


ES6的详细注解_前端_14


默认值可以与解构赋值一起使用。

ES6的详细注解_开发语言_15


也可以传入默认值。

ES6的详细注解_开发语言_16

rest参数

rest必须放到参数的最后。输出的是一个数组。

ES6的详细注解_javascript_17


ES6的详细注解_开发语言_18

扩展运算符

ES6的详细注解_开发语言_19


ES6的详细注解_默认值_20

Symbol

Symbol简单介绍

ES6的详细注解_数组_21


ES6的详细注解_javascript_22

ES6的详细注解_默认值_23


数据类型的总结:

ES6的详细注解_前端_24

利用Symbol给对象添加属性

给对象添加属性的时候我们不用担心命名冲突的问题。

ES6的详细注解_javascript_25


ES6的详细注解_开发语言_26

Symbol内置值

自己来控制类型检测。

ES6的详细注解_默认值_27


控制值是否可以展开。

ES6的详细注解_javascript_28


扩展对象的功能~~

迭代器

ES6的详细注解_开发语言_29


ES6的详细注解_数组_30


ES6的详细注解_前端_31


ES6的详细注解_前端_32


for of遍历的键值,for in遍历的键名

ES6的详细注解_数组_33


ES6的详细注解_前端_34

生成器

生成器是一个特殊的函数,异步函数,纯回调函数。

​yield​​​算作函数代码的切割符,每次用函数​​next()​​来执行代码。

ES6的详细注解_javascript_35


for of遍历出来的是value。

ES6的详细注解_javascript_36


ES6的详细注解_前端_37

生成器函数的参数

传入参数就会作为执行一次代码的返回值。

ES6的详细注解_开发语言_38

promise