Javascript 为什么左侧的赋值无效?-2
之所以是2.0,是因为几个月前我发布了与bools相关的类似内容。试图理解为什么Javascript 为什么左侧的赋值无效?-2,javascript,Javascript,之所以是2.0,是因为几个月前我发布了与bools相关的类似内容。试图理解为什么b1=!b2=真出错。我学习了函数等价性和从右到左的求值顺序 今天早上,我正在处理一些事情,我不明白为什么下面的代码会抛出类似的错误 功能测试(){ 返回1; } log((test())++)运算符将一个值添加到变量的值中,并将结果分配给变量。换句话说,foo++大约*等同于foo=foo+1。现在考虑你的代码: (test())++ test() (1)++ 或: 左边的(1),没有任何意义。不能为数字赋值
b1=!b2=真代码>出错。我学习了函数等价性和从右到左的求值顺序
今天早上,我正在处理一些事情,我不明白为什么下面的代码会抛出类似的错误
功能测试(){
返回1;
}
log((test())++)代码>运算符将一个值添加到变量的值中,并将结果分配给变量。换句话说,foo++
大约*等同于foo=foo+1
。现在考虑你的代码:
(test())++
test()
(1)++
或:
左边的(1)
,没有任何意义。不能为数字赋值,因此会出现错误
*事实上,表达式foo=foo+1
在添加后计算为foo
的值,而foo++
在添加前计算为foo
的值<因此,code>foo++
实际上相当于(oldFoo=foo,foo=foo+1,oldFoo)
与前面解释的原因相同。想象一下像a++
这样的后缀增量相当于a=a+1
。现在将上一个问题的答案应用到代码中,即test()=test()+1
。或借助@MikeMcCaughan注释,1=1+1
。没有意义是吗?可能是重复的
(1) = 1 + 1