docs(proposals): 增加 最新提案 一章

This commit is contained in:
ruanyf
2018-01-28 12:30:46 +08:00
parent eefe534d4f
commit cb025812e5
4 changed files with 120 additions and 62 deletions
-38
View File
@@ -1329,41 +1329,3 @@ clownsEverywhere(
这样的规定也使得,函数参数与数组和对象的尾逗号规则,保持一致了。
## catch 语句的参数
ES2018 [允许](https://github.com/tc39/proposal-optional-catch-binding)`try...catch`结构的`catch`语句不带有参数。这个提案跟参数有关,也放在这一章介绍。
传统的写法是`catch`语句必须带有参数,用来接收`try`代码块抛出的错误。
```javascript
try {
// ···
} catch (error) {
// ···
}
```
上面代码中,即使没有用到`error`,传统写法也是不允许省略。
新的写法允许省略`catch`后面的参数,而不报错。
```javascript
try {
// ···
} catch {
// ···
}
```
新写法只在不需要错误实例的情况下有用,因此不及传统写法的用途广。
```javascript
let jsonData;
try {
jsonData = JSON.parse(str);
} catch {
jsonData = DEFAULT_DATA;
}
```
上面代码中,`JSON.parse`报错只有一种可能:解析失败。所以一旦报错,基本上不需要用到错误实例,所以可以省略`catch`后面的参数。