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参数代替)
返回对象时必须在对象外面加上括号