用三元运算符求和 我认为自己是一个相当好的程序员,但是JavaScript总是让我有新的东西……/P>
下面是三个片段-用三元运算符求和 我认为自己是一个相当好的程序员,但是JavaScript总是让我有新的东西……/P>,javascript,Javascript,下面是三个片段- 代码片段1:我正在尝试使用三元速记法,根据某些条件得到两个值的内联求和。对于所有条件,此代码段将总和设为“X”=0 片段2:当我把它分成两个和时,我得到了正确的结果 代码段3:当我使用代码段1时,在两个和的周围用括号括起来,我得到了正确的结果 我理解代码段2和3为什么有效,但我不明白代码段1为什么无效。谁能给我解释一下吗?求你了 设w=50; //片段1 对于(设i=0;i这是由于。条件运算符的优先级(4)低于加法/串联(14),因此此处的行: let x = w*2*i +
设w=50;
//片段1
对于(设i=0;i这是由于。条件运算符的优先级(4)低于加法/串联(14),因此此处的行:
let x = w*2*i + (i<2)?w*0:w*2;
设x=w*2*i+(i这是由于。条件运算符的优先级(4)低于加法/串联(14),因此此处的行:
let x = w*2*i + (i<2)?w*0:w*2;
让x=w*2*i+(如果第一个类似于(w*2*i+(查看前面的所有内容?
是分组的。您可能是指(i<2?w*0:w*2);
(在代码段3中使用-(i<2)
周围的括号在这里是多余的)@ggorlen我完全错过了。我很愚蠢。正式地说。现在我明白了为什么它不起作用。是的,我知道运算符优先级和三元运算符的优先级低于算术运算,但你的推理在这里更有意义。首先是像(w*2*I+(查看前面的所有内容?
都已分组。您的意思可能是(i<2?w*0:w*2);
(如代码段3中所用-(i<2)
周围的括号在这里是多余的)@ggorlen我完全错过了。我很愚蠢。正式地说。现在我明白了为什么它不起作用。是的,我知道运算符优先级和三元运算符的优先级低于算术运算,但你的推理在这里更有意义。
let x = w*2*i + (i<2)?w*0:w*2;
let x = w*2*i + ((i<2)?w*0:w*2); // incorrect