淘先锋技术网

首页 1 2 3 4 5 6 7

前端新特性(ES6含更高版本)

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