es6知识点

185 阅读2分钟

let 和 const

1. 块级作用域
2. 不存在预解释
3. 重复定义会报错
4. const赋值后不能再修改

解构

var [name,age = 1] = ['yyc',8];
var {name,age = 1} = {name: 'yyc', age: 8};

字符串

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。

Array

Array.from
find()
findIndex()

函数

1. 接受默认值
2. 展开操作符
3. 剩余操作符
4. 箭头函数

Object

Object.is
Object.assign
Object.setPrototypeOf

generator

见generator与异步

import 和 export

export 命令规定的是对外的接口,必须和模块内部变量建立一一对应的关系
export 1 ❌

var m = 1
export m ❌  本质还是1

export var m = 1 ✔️


export default 42本质是把42这个值赋给default,所以不能再声明
export default var a = 42 ❎

import做按需加载

test.js: export const a = '谢航'

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <p id="tt">ppp</p>
</body>

<script>
  document.querySelector('#tt').onclick = function () {
    import('./test.js').then(({ a }) => {
      console.log(a) // 谢航
    })
  }
</script>

</html>

Promise

var p = new Promise((resolve, reject) => {
  throw Error('as')
})

p.catch(e => {
  console.log(12)
  console.log(e)
})

Set

var s = new Set([3, 4, 3, 6])
去重[...s]

Object.keys

Object.keys不返回原型上的,for in 是会遍历原型上次属性

箭头函数

函数体内的this是定义时所在的对象而不是使用时所在的对象
可让this指向固定化,这种特性很有利于封装回调函数
不可当作构造函数,因此箭头函数不可使用new命令
不可使用yield命令,因此箭头函数不能用作Generator函数
不可使用Arguments对象,此对象在函数体内不存在(可用rest/spread参数代替)
返回对象时必须在对象外面加上括号