We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ES6 是要求变量需要声明后才能使用。不过,解构赋值是个例外:
{a, b} = {a: 1, b: 2}
相当于
let {a, b} = {a: 1, b: 2}
并不会报错。 这个似乎是一个漏洞,因为如果等号右边不是一个字面量,而是一个对象名,那么如果不加声明关键字就会报错如下:
let c = {a: 1, b: 2}; {a, b} = c; // Uncaught SyntaxError: Unexpected token =
其实只要显式加关键字就可以按预期地走:
let c = {a: 1, b: 2}; let {a, b} = c;
之所以会这样是 ES6 内部语法解析的问题:
不过,我发现这个漏洞只会发生成对象解构上。数组解构并不地出现。
[a, b] = [1, 2]; // 正常
正常
let c = [1, 2]; [a, b] = c;
也正常
尽管只有对象解构会发生意料之外的报错,但是为了良好习惯强烈建议解构赋值都显式加声明关键字:var/let。
The text was updated successfully, but these errors were encountered:
赞👍
Sorry, something went wrong.
No branches or pull requests
ES6 是要求变量需要声明后才能使用。不过,解构赋值是个例外:
相当于
并不会报错。
这个似乎是一个漏洞,因为如果等号右边不是一个字面量,而是一个对象名,那么如果不加声明关键字就会报错如下:
其实只要显式加关键字就可以按预期地走:
之所以会这样是 ES6 内部语法解析的问题:
不过,我发现这个漏洞只会发生成对象解构上。数组解构并不地出现。
正常
也正常
结论
尽管只有对象解构会发生意料之外的报错,但是为了良好习惯强烈建议解构赋值都显式加声明关键字:var/let。
The text was updated successfully, but these errors were encountered: