JavaScript中的常用语法和新特性解析

99 阅读2分钟

JavaScript是一种广泛应用于Web开发和其他领域的脚本语言,具有丰富的语法和功能。本文将介绍几个JavaScript中常用的语法和一些新的特性,包括"?.与??运算符"、数字分隔符"_"、BigInt数据类型和"in与hasOwn"方法。

1. ?.与??运算符:简化运算逻辑

"?.与??"运算符可以简化条件判断和赋值的逻辑。其中,"?.运算符"可以在多层属性访问中进行短路判断,避免访问不存在的属性而导致报错,并直接赋予最后可访问的属性值;"??运算符"用于处理null或undefined值,当出现这些值时,可以提供一个默认值作为替代。

let data = {}; const msg = data?.msg ?? 'message';  // message

在上述示例中,如果data对象存在msg属性,则将其赋值给msg变量;否则,将默认值'message'赋给msg变量。

2. 数字分隔符"_": 提升数字可读性

数字分隔符"_"在JavaScript中用于分隔较大的数字,以提升数字的可读性。这个分隔符可以按照规律将数字分组显示,使其更易于理解。

const num = 6_000_000_000// 清晰明了 console.log(num); // 6000000000

通过使用"_"分隔符,我们可以更清晰地表示数字6000000000

3. BigInt数据类型:处理大数字

在JavaScript中,数字类型受限于Number.MAX_SAFE_INTEGER,即不能安全存储超过某个范围的整数。为了解决这个问题,JavaScript引入了BigInt数据类型,用于处理大数字。

const bigNum = BigInt(Math.pow(253)) + BigInt(1); console.log(bigNum); // 9007199254740993n

在上述示例中,我们使用BigInt()函数将超过Number.MAX_SAFE_INTEGER的数字转换为BigInt类型。这样,我们就可以安全地处理大数字,而不会发生精度丢失的问题。

4. in与hasOwn:判断对象属性的存在

"in"和"hasOwn"用于判断对象中是否存在某个属性。其中,"hasOwnProperty"方法只能检测实例属性,无法检测原型链上的属性;而"in"操作符可以检测实例属性和原型链上的属性。

class Person { constructor(name) { this.name = name; } getName() { return name; } } constperson = new Person(1288); console.log(person.hasOwnProperty("xiaoming"));  // trueconsole.log(person.hasOwnProperty("getName"));  // false console.log("name" in person);  // true console.log("getName" in person);  // true

在上述示例中,我们创建了一个Person类的实例person,并使用"hasOwnProperty"方法和"in"操作符来检测属性的存在。需要注意的是,当使用Object.create(null)创建的对象时,"hasOwnProperty"方法会出现异常错误,而"in"操作符不会。