我今天注意到NaN当你输入{}+{}控制台时,Chrome 49不再输出.而是输出字符串[object Object][object Object].
为什么是这样?语言有变化吗?
使用节点8.4.0:
$ node
> {x, y} = {x: 1, y: 2}
{ x: 1, y: 2 }
>
Run Code Online (Sandbox Code Playgroud)
但是,以下错误也是非交互式的:(唯一的区别是分号)
$ node
> {x, y} = {x: 1, y: 2};
...
Run Code Online (Sandbox Code Playgroud)
同样在Chrome控制台中:
> {x,y} = {x:1, y:2}
< {x: 1, y: 2}
> {x,y} = {x:1, y:2};
x VM253:1 Uncaught SyntaxError: Unexpected token =
Run Code Online (Sandbox Code Playgroud)
有谁能解释一下?
这不是关于let,var或cosnt解构,它按预期工作.这是关于先前定义的变量(或非严格模式):来自chrome控制台:
> let a, b;
< undefined
> [a, b] = [1, 2];
< >(2) [1, 2]
> a
< 1
> b
< 2 …Run Code Online (Sandbox Code Playgroud) 此代码在google chrome 控制台中完美执行:
{ a, b } = { a: 10, b: 20 }
Run Code Online (Sandbox Code Playgroud)
{a: 10, b: 20}
但是当我在最后添加分号时,出现语法错误:
{ a, b } = { a: 10, b: 20 };
Run Code Online (Sandbox Code Playgroud)
VM115:1 未捕获的语法错误:意外标记“=”
有人能告诉我为什么吗?AFAIK;不应该影响 javascript 中的含义,但显然它在 google chrome 控制台中会影响。
PS 请注意,此行为仅在 Google Chrome 控制台中观察到。