Skip to content

ESMAScript

总结

let 和 const

  1. let 声明变量

  2. const 声明常量,声明必须赋初始值,常量值不可以修改

重点

  1. 没有变量的提升,存在暂时性死区(变量声明前调用报错,var 声明的变量提前调用默认为 undefined)
  2. 同一作用域内不允许重复声明同名变量
  3. 拥有块级作用域

解构赋值

模板字符串

数值拓展

二级制

可以使用 0B 或者 0b表示二进制

js
const num1 = 0b101010101
const num2 = 0b101010101

八进制

可以使用 0o 或者 0O表示八进制

js
const num1 = 0o767
const num2 = 0o767

BigInt

js
const num1 = 1234567890n // 大数值 后缀加n
const num2 = 0o767123456712n // 进制类型也支持

const num3 = new BigInt(1231231)

数值分隔符(_)

可以使用数字分隔符 _ 增强数字的可读性

js
const num1 = 12_3456_789
const num2 = 0b10_101_0101
const num3 = 12_312.1231_23

实例方法拓展

  1. Number.isFinite() 判断数值是否是有限的
  2. Number.isNaN() 判断数值是否为 NaN

重点:

  • 与传统全局方法isFinite()isNaN()的区别是: 传统方法会先进行类型转换,再调用 Number.isFinite()等方法判断
js
isFinite(25) // true
isFinite("25") // true
Number.isFinite(25) // true
Number.isFinite("25") // false
  1. Number.parseInt()
  2. Number.parseFloat()

主要就是将全局方法parseInt()parseFloat(),移植到Number对象上面

  1. Number.isInteger() 判断一个数值是否为整数
js
Number.isInteger() // false
Number.isInteger(null) // false
Number.isInteger("15") // false
Number.isInteger(true) // false

重点:

  • 小数位为 0 的浮点数 和 小数位超出存储范围的浮点数也是整数
js
Number.isInteger(25.0) // true

Number.isInteger(3.0000000000000002) // true

字符串 String 方法拓展

数组 Array 方法拓展

对象 Object 拓展

函数 Function 拓展

运算符拓展

正则拓展

1. Promise

  • Promise.all

  • Promise.any

目录

ES6

ES7(ECMAScript2016)

ES8(ECMAScript2017)

ES9(ECMAScript2018)

  • Rest(剩余)/Spread(展开) 属性

  • Asynchronous iteration (异步迭代)

  • Promise.prototype.finally()

  • 正则表达式改进

  • Unicode 属性转义 \p{…} 和 \P

  • 命名捕获组(Named capturing groups)

  • 正则表达式的 ‘s’ 标志

ES10(ECMAScript2019)

  • Try Catch Binding

  • Array.flat

  • Array.flatMap

  • String trimStart, trimEnd

  • Object.fromEntries

  • Function.prototype.toString()

  • Symbol.prototype.description

  • JSON.superset

  • JSON.stringify

ES11(ECMAScript2020)

ES12(ECMAScript2021)

其他

  1. ES6 面试题