ES2019之标准新增

220 阅读2分钟

这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战

标准新增

ES2019的标准增加了:

  1. optional-catch-binding即可选捕获绑定
  2. json-strings即json字符串 这篇文章我们就来了解一下ES2019的两个新增标准。

可选捕获绑定

try...catch语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。try语句包含了由一个或者多个语句组成的try块, 和至少一个catch块或者一个finally块的其中一个,或者两个兼有, 下面是三种形式的try声明:

  1. try...catch
  2. try...finally
  3. try...catch...finally

在ES2019之前,我们需要绑定异常捕获,无论你需不需它,如下:

try {
  // do somthing
} catch (error) {
  console.error(error);
}

但是ES2019来临后,这个异常捕获我们可选择的使用它,如下:

try {
  // do somthing
} catch{
  // 抛出异常时,执行里面的语句
}

json字符串

JSON.stringify() 方法将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer 函数,则可以选择性地替换值,或者指定的 replacer 是数组,则可选择性地仅包含数组指定的属性。 我们来看下面这个例子:

JSON.stringify({name:'也笑',a:undefined,b:null,c:NaN,d:Symbol('slifree')})

你心中的输出结果是什么呢,真实的输出结果如下:

{"name":"也笑","b":null,"c":null}

当key的value为undefined和Symbol的时候,此key会缺失,而值为NaN的时候,值会转化为null。

注意事项

我们需要注意的是:

  1. try语句至少一个catch块或者一个finally块的其中一个。

  2. JSON.stringify()转化为字符串的时候,有些属性是缺失。

总结

在实际开发中,我们经常使用JSON.parse()JSON.stringify()来进行数据的深拷贝,但是我们需要我们注意的是:拷贝过来的数据可能会出现属性缺失的情况。

如果你想了解ES的其他特性,请移步到 ES2015+碎片化学习,每天都在向前走一步,这是所有文章的目录入口。