ES11常用语法

BigInt

  1. 定义: 新增的基础数据类型,用来表达更大的数值
  2. 使用: 在大数值的后面加n标记或者使用BigInt( )函数
    // 获取js基础最大数
    let maxInt = Number.MAX_SAFE_INTEGER
    console.log(maxInt) --> 9007199254740991000
    
    // 用n标记为BigInt类型
    let num = 9007199254740991000n
    console.log(num)  --> 9007199254740991000n

    值得注意: BigInt类型是不能直接和普通数字类型相加的,没有隐式转换,需要将普通数字类型用n标记为BigInt类型进行相加或者用BigInt( )函数转换类型

let num = 9007199254740991000n
let num2 = 10
let num3 = 10n
let num4 = BigInt(10)

console.log( num + num2 ) --> 报错
console.log( num + num3 ) --> 9007199254740991010n
console.log (num + num4 ) --> 9007199254740991010n

提醒: BigInt类型也可以通过Number( )函数转为number类型,但是会数字溢出,计算不准确,所以不推荐使用Number( )转换后去计算

??(空值合并运算符)

  1. 定义: 如果左侧是null或者undefined时,执行右边的表达式
    let value  = null ?? 'a'
    console.log( value ) --> 'a'
    
    function add(){ console.log('aaa') }
    undefined ?? add() --> 'aaa'

?.(可选连操作符)

  1. 定义: 可以直接判断深层次的数据是否存在,而不会因为前面任意一个变量是undefined或者null而导致报错
    let obj = { name:{ age: {} } }
    //会因为age对象中没有year,year为undefined,undefined.number就会报错
    console.log( obj.name.age.year.number )
    
    //显示undefined   
    console.log( obj.name.age.year?.number ) 

globalThis(全局对象)

  1. 定义: 获取全局对象,不分浏览器和node环境
  2. 出现原因: 浏览器的全局对象通过this或者window获取,node环境下的全局变量获取时global({ })
    console.log( globalThis )  -->  浏览器执向window  node 指向{}

其它

  1. for…in标准化
    定义: key只能用来标明对象的键名

  2. import动态导入
    定义: 使用import导入文件之后直接promise方式调用(.then)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!