ES11常用语法
BigInt
- 定义: 新增的基础数据类型,用来表达更大的数值
- 使用: 在大数值的后面加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( )转换后去计算
??(空值合并运算符)
- 定义: 如果左侧是null或者undefined时,执行右边的表达式
let value = null ?? 'a' console.log( value ) --> 'a' function add(){ console.log('aaa') } undefined ?? add() --> 'aaa'
?.(可选连操作符)
- 定义: 可以直接判断深层次的数据是否存在,而不会因为前面任意一个变量是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(全局对象)
- 定义: 获取全局对象,不分浏览器和node环境
- 出现原因: 浏览器的全局对象通过this或者window获取,node环境下的全局变量获取时global({ })
console.log( globalThis ) --> 浏览器执向window node 指向{}
其它
for…in标准化
定义: key只能用来标明对象的键名import动态导入
定义: 使用import导入文件之后直接promise方式调用(.then)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!