Javascript 递增Map.get()的结果

Javascript 递增Map.get()的结果,javascript,ecmascript-6,Javascript,Ecmascript 6,在Chrome(50.0.2661.86)中尝试增加从控制台中的映射中获得的值时,我遇到以下错误: 和节点(4.4.3)中的类似内容: 以下内容也会失败: var n = ++m.get(1) var n = ++(m.get(1)) 可能是V8中的一个bug?或者是对++运算符语法方面的误解?您不能为函数调用赋值。那就像说 m.get(1) = m.get(1) + 1 您需要将其拆分为两条语句: const n = m.get(1) + 1; m.set(1, n); 或: 我不是JS

在Chrome(50.0.2661.86)中尝试增加从控制台中的映射中获得的值时,我遇到以下错误:

和节点(4.4.3)中的类似内容:

以下内容也会失败:

var n = ++m.get(1)
var n = ++(m.get(1))

可能是V8中的一个bug?或者是对
++
运算符语法方面的误解?

您不能为函数调用赋值。那就像说

m.get(1) = m.get(1) + 1
您需要将其拆分为两条语句:

const n = m.get(1) + 1;
m.set(1, n);
或:


我不是JS评估方案的专家,但下面是我试图解释的

在JS中,
(1)+
无效;不能更改值。您可以将值属性更改为名称:

var a = 1;
a++;
在这种情况下,
1
的值不变;改变的是
a
现在指向不同的值

类似地,您不能增加
.get()
返回的值;在更改之前,需要将其转换为命名表达式


< C++ >中,我们可以说,<代码> ++> /COD>需要一个LValk,但是函数返回是一个rValue.< /P>,即使是<代码> var n=(M.GET(1))++< /C> >,正如BartekBanachewicz所说的。我希望将该值分配给另一个变量,并将其按一个进行凹凸。我想真正的问题是,这是我遇到的一个bug吗?@BartekBanachewicz,这并不重要。映射当然返回引用,但函数调用不能用作表达式的左侧。这不是一个bug这是语言的方式works@AdrianLynch在这种情况下,为什么不
var n=m.get(1)+1
?我应该试试这个:
函数x(){return 1};x()+-谢谢。
m.get(1) = m.get(1) + 1
const n = m.get(1) + 1;
m.set(1, n);
const n = m.get(1);
m.set(1, n++);
var a = 1;
a++;