前端新特性(ES6含更高版本)
变量名 | 区别 |
---|
var | 有变量提升,可重复声明 ,有初始提升 |
let | 有变量提升,没有初始化提升,值可变,存在暂时性死区所以有变量提升,但是没有提升 |
const | 有变量提升,没有初始化提升,值不可变,但如果是定义对象,则属性可变 ,存在暂时性死区 |
- Object.keys
可以用来获取对象的key的集合,进而可以获得对应key的value
const obj = {
name: '拉拉',
age: 22,
gender: '女'
}
console.log(Object.keys(obj)) // [ 'name', 'age', 'gender' ]
- Object.values
可以用来获取对象的键值对集合
const obj = {
name: '拉拉',
age: 22,
gender: '女'
}
console.log( Object.entries(obj) ) // [ [ 'name', '拉拉' ], [ 'age', 22 ], [ 'gender', '女' ] ]
- Array.flat
二维或多维数组变一维
const arr = [1, 2, 3, [4, 5, 6]]
console.log(arr.flat()) // [ 1, 2, 3, 4, 5, 6 ]
const arr = [1, 2, 3, [4, 5, 6, [7, 8, 9, [10, 11, 12]]]]
console.log(arr.flat(Infinity))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
- Array.flatMap
也是降维,只会降维一次,并可以对数组中的元素进行迭代通过return返回 - BigInt 新的数据类型用来表示大于 2^53 - 1 的整数
- Symbol 新的数据类型
- Object.fromEntries
const map = new Map()
map.set('name', '拉拉')
map.set('age', 22)
map.set('gender', '女')
console.log(map) // Map(3) { 'name' => '拉拉', 'age' => 22, 'gender' => '女' }
const obj = Object.fromEntries(map)
console.log(obj) // { name: '拉拉', age: 22, gender: '女' }
- String.trimStart && String.trimEnd
取消文字左边空格 取消文字右边空格 - ||= 和 &&=
或等于(||=) a ||= b 等同于 a || (a = b);
且等于(&&=) a &&= b 等同于 a && (a = b);