ES6
let const
let
- 变量不能重复声明
- 块级作用域
- 不存在变量提升
-
const
一定要赋初始值
- 一般常量用大写
- 常量的值不能修改
- 块级作用域
- 对于数组和对象的元素修改,不算做对常量的修改,不会报错
var let const的区别
var
- ES5
- 存在变量提升
- 能对一个变量进行多次声明
- 全局变量,在函数中是局部变量(在函数内不使用var,变量是全局的)
let const
- ES6
- 不存在变量提升
- 块级作用域
- 在同一作用域内不存在重复声明变量
var 和 let 可以修改声明的变量,const 一旦声明,常量的值就不能改变。
解构赋值
箭头函数
模板字符串
- 声明字符串
let str = ' typeof str 是 String'
- 内容中可以直接出现换行符
变量拼接
let lovest = ‘kun’
let out =${lovest) is love
rest 参数 …
扩展运算符 …
Symbol
迭代器
生成器
Promise 异步编程
- 解决回调地狱
三种状态——pending fulfilled rejected
const p = new Promise(function(resolve,reject){
resolve-成功调用
reject-失败调用
可以通过调用改变状态
});
p.then(function(value){
value-success
},function(reason){
reason-fail
});
集合 Set()
一些方法
s.size 获取元素个数
let arr = [1,2,3,4,1]
let s = new Set(arr);
console.log(s.size)//4
add()
- delete()
- has() 检测有无
-
数组去重
let arr = [1,2,3,4,1]
let s = new Set(arr);
console.log(s)
let arr = [1,2,3,4,1]
let s = new Set(arr);
console.log(...s)
求交集
let arr = [1,2,3,4,1]
let arr2 = [1,3,5,6,7,8]
let result = [...new Set(arr)].filter(
item => new Set(arr2).has(item)
);
console.log(...result) // 1 3
求并集
let arr = [1,2,3,4,1]
let arr2 = [1,3,5,6,7,8]
let result = new Set([...arr,...arr2])
console.log(...result) //1 2 3 4 5 6 7 8
Map
类似于对象,也是键值对的集合。
//声明 Map
let m = new Map();
//添加元素
m.set('name','kun')
m.set('change',function(){
console.log('balabala')
})
let key ={
school:'atguigu'
}
m.set(key,['杭州','上海'])
//size
// console.log(m.size)
//删除
// m.delete('name')
//获取
console.log(m.get('change'))
console.log(m.get(key))
//清空
m.clear();
//遍历
for(let v of m){
console.log(v)
}
console.log(m)
class类
模块化
export 暴露
-
babel
ES7
includes()
返回boolean
- 对比 indexOf 返回-1
let arr = [1,2,3,4,1]
console.log(arr.includes(2)); //true
console.log(arr.indexOf(2)); //1
** 幂运算符
2 ** 10 == Math.pow(2,10)
ES8
async await
async 返回的是promise对象
await
返回的是promise成功的值。
await的promise失败了,就会抛出异常,需要通过try…catch捕获处理。
async 和 awaittrim 清除字符串两侧的空白
ES10
trimStrat()
trimEnd()
flat() 将多维数组转化为低维数组
const arr = [1,2,3,4,[5,6]]
console.log(arr.flat()) //[1, 2, 3, 4, 5, 6]
flatMap() flat()和map()的结合
map()const arr = [1,2,3,4,1]
const result= arr.map(item => item*10)
console.log(result) //[10, 20, 30, 40, 10]
ES11
Promise.allSettled()
不管成功还是失败,都会显示Promise.all()
都成功才会成功;有一个失败会显示失败的值matchAll() 用于正则数据的批量提取
?.可选链操作符
BigInt 用于大数值运算
globalThis 绝对全局对象(如果想对全局对象做一些操作时可用)