随着 JavaScript 的应用场景越来越广泛,标准化组织也在不断地扩展语言的功能,以适应新的需求。ES10 中新增了一些基本数据类型的扩展,这些扩展大大提高了 JavaScript 的灵活性和表达力。
BigInt 类型
BigInt 类型用于表示任意大的整数,它可以处理超出 Number
类型所能表示的整数范围。在使用 Number
类型时,最大可表示的整数是 Number.MAX_SAFE_INTEGER
,即 9007199254740991
。如果需要处理更大的整数,可以使用 BigInt 类型。
使用 BigInt 类型时,需要将整数加上后缀 n
,例如 10n
表示整数 10。可以使用 typeof
运算符检查一个值是否为 BigInt 类型。
const a = 9007199254740991n; const b = 10n; console.log(a + b); // 9007199254741001n console.log(typeof a); // bigint
Array.prototype.flat()
、Array.prototype.flatMap()
Array.prototype.flat()
用于将一个多维数组转换成一个一维数组。它可以接收一个可选的参数,表示要 “压扁” 的层数。如果不指定这个参数,默认值为 1。
const a = [1, [2, 3], [4, [5, 6]]]; console.log(a.flat()); // [1, 2, 3, 4, [5, 6]] console.log(a.flat(2)); // [1, 2, 3, 4, 5, 6]
Array.prototype.flatMap()
可以理解为 map()
后再执行一次 flat()
。这个方法的回调函数必须返回一个数组,或者使用 undefined
表示返回空数组。
const arr = [1, 2, 3]; console.log(arr.flatMap(x => [x * 2])); // [2, 4, 6]
Object.fromEntries()
Object.fromEntries()
方法可以把一个二维数组转换成一个对象。这个方法的参数是一个键值对的数组,其中每个元素都是一个长度为 2 的数组(第一个元素表示键,第二个元素表示值)。
const arr = [ ['a', 1], ['b', 2], ['c', 3], ]; console.log(Object.fromEntries(arr)); // {a: 1, b: 2, c: 3}
String.prototype.trimStart()
、String.prototype.trimEnd()
String.prototype.trimStart()
和 String.prototype.trimEnd()
分别用于去除字符串开头和结尾的空格。这两个方法的使用与 trim()
方法类似,但是只影响字符串开头和结尾的空格。
const str = ' hello world '; console.log(str.trimStart()); // 'hello world ' console.log(str.trimEnd()); // ' hello world'
总结
ES10 中的这些基本数据类型的扩展为 JavaScript 的开发者提供了更多的灵活性,通过运用这些拓展可以提高代码的表达能力和效率。需要注意的是,如果需要在现有的项目中使用这些特性,要检查所使用的浏览器是否已经支持这些特性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649ba54048841e989486a7c4