原文链接: http://jsrun.net/tutorial/cZKKp
当前进度:函数的扩展
最近在看这篇文档学习ES6。其中有些错误的地方做个更正,以供参考
1。变量的解构赋值一节有这样一段
let foo;
let {foo} = {foo: 1}; // SyntaxError: Duplicate declaration "foo"
let baz;
let {bar: baz} = {bar: 1}; // SyntaxError: Duplicate declaration "baz"
上面代码中,解构赋值的变量都会重新声明,所以报错了。不过,因为var
命令允许重新声明,所以这个错误只会在使用let
和const
命令时出现。如果没有第二个let
命令,上面的代码就不会报错。
let foo;
({foo} = {foo: 1}); // 成功
let baz;
({bar: baz} = {bar: 1}); // 成功
上面代码中,let
命令下面一行的圆括号是必须的,否则会报错。因为解析器会将起首的大括号,理解成一个代码块,而不是赋值语句。
第一段代码中错误,第二段代码中因为没有let声明,因此可以成功。但实际上在chrome浏览器中也是不会出错的