关于javascript中值得学习的特性总结-kb88凯时官网登录

来自:网络
时间:2023-05-17
阅读:
免费资源网 - https://freexyz.cn/
目录

可选链操作符(optional chaining operator)

可选链操作符允许我们在一个对象的属性值为空或未定义时,直接返回undefined,而不会抛出“cannot read property 'xxx' of undefined”等错误。这样的好处是可以简化代码,避免繁琐的判断逻辑。例如:

const person = {
  name: 'tom',
  age: 18,
  address: {
    city: 'shanghai'
  }
};
// 普通写法
if (person && person.address && person.address.city) {
  console.log(person.address.city);
} else {
  console.log('unknown');
}
// 可选链写法
console.log(person?.address?.city ?? 'unknown');

在上述代码中,我们使用了可选链操作符(?)和nullish合并运算符(??),将原本需要多次判断的代码缩减到了一行。如果person、address或city不存在,则会直接返回undefined或'unknown'。

空值合并运算符(nullish coalescing operator)

空值合并运算符允许我们在变量为空或undefined时,直接返回默认值。与传统的||操作符不同,它只会在变量为null或undefined时返回默认值,而不是在变量为0、空字符串或false时也返回默认值。例如:

const name = '';
// 普通写法
const username = name || 'unknown';
// 空值合并写法
const username = name ?? 'unknown';

在上述代码中,我们使用了空值合并运算符(??)将原本需要繁琐判断的代码简化到了一行,如果name为空或undefined,则会返回'unknown'。

promise.allsettled()

promise.allsettled()方法可以接收一个由promise对象组成的数组,等待所有promise对象都执行完成后,返回一个包含所有promise对象的状态信息(fulfilled/rejected)和结果值(value/reason)的数组。与promise.all()不同的是,即使其中某个promise被reject,promise.allsettled()仍然会等待其他promise对象执行完毕后再返回结果。例如:

const promises = [
  promise.resolve(1),
  promise.reject(new error('fail')),
  promise.resolve(3)
];
promise.allsettled(promises).then(results => {
  results.foreach(result => {
    console.log(result.status, result.value);
  });
});

在上述代码中,我们使用了promise.allsettled()方法获取了所有promise对象的状态信息和结果值,并使用foreach遍历输出了它们的状态(fulfilled/rejected)和结果值(value/reason)。

bigint类型

bigint类型是es2020新引入的一种数据类型,用于表示任意精度的整数。相较于number类型,它能够处理更大的整数,避免了溢出和精度丢失的问题。例如:

const x = bigint(number.max_safe_integer);
const y = bigint('9007199254740993');
const z = x   y;
console.log(z); // 9007199254740994n

在上述代码中,我们使用了bigint类型来表示较大的整数,并通过 运算符对它们进行了加法计算。

以上就是关于javascript中值得学习的特性总结的详细内容,更多关于javascript特性的资料请关注其它相关文章!

免费资源网 - https://freexyz.cn/
返回顶部
顶部
网站地图