相关疑难解决方法(0)

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

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

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

javascript google-chrome

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

没有变量的对象解构

如果var前面没有关键字,为什么对象解构会抛出错误?

{a, b} = {a: 1, b: 2};
Run Code Online (Sandbox Code Playgroud)

投 SyntaxError: expected expression, got '='

以下三个示例没有问题

var {a, b} = {a: 1, b: 2};
var [c, d] = [1, 2];
    [e, f] = [1, 2];
Run Code Online (Sandbox Code Playgroud)

奖金问题:为什么我们不需要var进行阵列解构?

我遇到了类似的问题

function () {
  var {a, b} = objectReturningFunction();

  // Now a and b are local variables in the function, right?
  // So why can't I assign values to them?

  {a, b} = objectReturningFunction();
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

75
推荐指数
4
解决办法
4974
查看次数

Node JS/V8解构bug?

使用节点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)

javascript v8 destructuring node.js ecmascript-6

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

传播语法后使用分号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
查看次数