相关疑难解决方法(0)

为什么{} + {}在Chrome控制台中不再是NaN?

我今天注意到NaN当你输入{}+{}控制台时,Chrome 49不再输出.而是输出字符串[object Object][object Object].

为什么是这样?语言有变化吗?

javascript google-chrome

143
推荐指数
2
解决办法
1万
查看次数

ES6不会将对象解构为预先声明的变量吗?

这有效:

const { foo, bar } = someFunc();
Run Code Online (Sandbox Code Playgroud)

这样做:

let { foo, bar } = someFunc();
Run Code Online (Sandbox Code Playgroud)

但是如果我试图将结构化为已经声明的变量......

let foo = 0;
let bar = 0;
{ foo, bar } = someFunc();
Run Code Online (Sandbox Code Playgroud)

然后:

未捕获的SyntaxError:意外的令牌=

这是设计的吗?除了声明临时对象接收值之外,还有其他解决方法吗?我在switch/case语句中这样做; foo和bar在顶部声明并在切换后使用.到目前为止,我只能这样做:

const temp = someFunc();
foo = temp.foo;
bar = temp.bar;
Run Code Online (Sandbox Code Playgroud)

javascript destructuring ecmascript-6

5
推荐指数
0
解决办法
40
查看次数

传播语法后使用分号jn javascript中断执行错误"Unexpected token ="

有人可以解释我为什么

const getabc = ()=> ({a:'aa',b:'bb',c:123});
let a, b, c;
{ a, b, c } = {...getabc()}
Run Code Online (Sandbox Code Playgroud)

这很有效

const getabc = ()=> ({a:'aa',b:'bb',c:123});
let a, b, c;
{ a, b, c } = {...getabc()};
Run Code Online (Sandbox Code Playgroud)

这不(注意末尾的分号)

javascript spread-syntax

2
推荐指数
2
解决办法
86
查看次数

为什么分号会改变 Chrome 控制台中的 JavaScript 行为

此代码在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 控制台中观察到。

javascript

2
推荐指数
1
解决办法
89
查看次数