这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战
标准新增
ES2019的标准增加了:
optional-catch-binding即可选捕获绑定json-strings即json字符串 这篇文章我们就来了解一下ES2019的两个新增标准。
可选捕获绑定
try...catch语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。try语句包含了由一个或者多个语句组成的try块, 和至少一个catch块或者一个finally块的其中一个,或者两个兼有, 下面是三种形式的try声明:
try...catchtry...finallytry...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。
注意事项
我们需要注意的是:
-
try语句至少一个catch块或者一个finally块的其中一个。 -
JSON.stringify()转化为字符串的时候,有些属性是缺失。
总结
在实际开发中,我们经常使用JSON.parse()和JSON.stringify()来进行数据的深拷贝,但是我们需要我们注意的是:拷贝过来的数据可能会出现属性缺失的情况。
如果你想了解ES的其他特性,请移步到 ES2015+碎片化学习,每天都在向前走一步,这是所有文章的目录入口。