一.try catch
在es6中我们可以使用let来声明变量,来创建块级作用域,而在es3中我们可以通过try catch这个语句来实现。
try{
}catch(e){}
语法如上,在try里面去写一些代码,在发生错误时通过throw来抛出错误,比如你在try里面发送了一个请求,在请求失败或是异常的时候抛出了一个错误,让catch来处理,它会接收你抛出错误的内容,比如说你抛出一个2,它就会接收一个2。
二.函数表达式
某些时候你将代码中的一部分抽离出来书写一个函数表达式,将它们包裹在其中,但要注意其中的 this、return、break 和 contine都会发生变化,所以这并不是一个都适用的方案。
三.let
最推崇的自然是es6中的let,既不用书写try catch那样丑陋的代码,也适用于一切,当你想要将使用let的代码转化为es3这样的环境,很多打包工具都有这样的功能,babel就是其中之一。
四.总结
- try catch使用于所有请求但它书写的代码太丑,而且性能也不好,Traceur 团队已经要求 Chrome 对 try/catch 的性能进行改进。
- 函数表达式不适用于所有场景,需谨慎使用。
- let 适用于所有场景,且转化为低版本场景不需要担心代码的转化,许多库已经帮我们解决了。