es 数组交集_voliate修饰数组有作用吗

let  和 const

let 的特点
  • let 的作用域在最近的 {} 之间
  • 如果在 let a 之前使用 a ,那么报错(Temp Dead Zone)
  • 如果重复let a , 会报错
  • let 存在块级作用域

let 循环

es 数组交集_voliate修饰数组有作用吗_02

const 特点
  • const 的作用域在最近的 {} 之间
  • 如果在 const a 之前使用 a ,那么报错(Temp Dead Zone)
  • 如果重复const a , 会报错
  • 只有一次赋值机会,并且必须在声明的时候立马赋值

解构赋值

数组匹配  [ b, a ] = [ a, b ]

es 数组交集_voliate修饰数组有作用吗_03

es 数组交集_es6数组合并_04

  • 交换变量

es 数组交集_es6转es5_05

  • 默认值

es 数组交集_es 数组交集_06

es 数组交集_es6转es5_07

undefined 和null 的区别:

es 数组交集_es6转es5_08

对象匹配 let { a, b, c } = objABC

es 数组交集_es6数组合并_09

  • 获取对象所有属性

es 数组交集_voliate修饰数组有作用吗_10

  • 对象浅拷贝

es 数组交集_es 数组交集_11

  • 对象合并 ...

es 数组交集_es6标准入门第3版pdf_12

参数处理

默认参数值

函数默认参数允许在没有值或undefined被传入时使用默认形参。

es 数组交集_voliate修饰数组有作用吗_13

上面的代码等价于:

es 数组交集_es6转es5_14

剩余参数
展开运算符

先来看一个数组的扩展:

es 数组交集_es6标准入门第3版pdf_15

es 数组交集_es6转es5_16

... 相当于把数组拆开

  • 函数参数的扩展

es 数组交集_es6标准入门第3版pdf_17

es 数组交集_es6标准入门第3版pdf_18

  • 类数组对象转数组
    ES5 写法是:

es 数组交集_es6数组合并_19

ES6 写法如下:

es 数组交集_voliate修饰数组有作用吗_20

或者

es 数组交集_es6数组合并_21

模板字面量

多行字符串

es 数组交集_es6数组合并_22

字符串插值

es 数组交集_es6数组合并_23

可以用来拼接HTML:

es 数组交集_es6转es5_24

带标签的模板字面量

如果一个模板字符串由表达式开头,则该字符串被称为带标签的模板字符串,该表达式通常是一个函数,它会在模板字符串处理后被调用,在输出最终结果前,都可以通过该函数来对模板字符串进行操作处理。

es 数组交集_es6标准入门第3版pdf_25

运行结果如下:

es 数组交集_voliate修饰数组有作用吗_26

es 数组交集_es6标准入门第3版pdf_27

把 name 和 score 改下:

es 数组交集_es 数组交集_28

原始字符串

在标签函数的第一个参数中,存在一个特殊的属性raw,我们可以通过它来访问模板字符串的原始字符串,而不经过特殊字符的替换。

es 数组交集_es6标准入门第3版pdf_29

原有字面量增强

  • 更安全的二进制字面量(0b1111101)
  • 更安全的八进制字面量(0o767)
  • 字符串支持 Unicode
    -- String.fromCodePoint
    -- String.prototype.codePointAt
  • 正则表达式字面量添加 Unicode 支持(u 标记)
  • 正则表达式添加 y 标记,支持粘滞匹配

对象属性加强

属性定义支持短语法 obj = { x, y }

ES5写法:

es 数组交集_es6标准入门第3版pdf_30

ES6写法:

es 数组交集_es6转es5_31

属性名支持表达式

动态属性名
原来的写法:

es 数组交集_es 数组交集_32

ES6:

es 数组交集_es 数组交集_33

属性修饰符Object.defineProperty()

a === 1 && a ===2 && a === 3 问题

es 数组交集_voliate修饰数组有作用吗_34

类 class

es 数组交集_es 数组交集_35

ECMAScript 2015引入了一种对象方法的简短写法, "function" 关键字可以丢掉:

es 数组交集_es6转es5_36

构造函数

es 数组交集_es 数组交集_37

上面的代码等价于

es 数组交集_es6标准入门第3版pdf_38

class  共有属性不能是非函数:

  • 可以用原型写xxx.prototype.race = 'animal'
  • get

es 数组交集_es6数组合并_39

但是 不能通过 BritishShorthair.race = newvalue来改

es 数组交集_es6标准入门第3版pdf_40

所以又要用到 set

es 数组交集_es6数组合并_41

再修改就发现改成功了:

es 数组交集_es6转es5_42

如果想让属性只读,就不写set

ES6 模块

用 import  和 export 写好之后,
可以用webpack 或者 parcel (推荐) 打包 ,然后引入

es 数组交集_es6数组合并_43