我们的导师在测验中给了我们以下一段代码,我不知道发生了什么。到目前为止没有听到她的回复,有人可以对它进行任何照明吗?到目前为止,我的编程研究中还没有看到这样的表达
var a = 3;
var b = 5;
var c = 7;
var d = 8;
var e;
e = a < b && c++ > d;
document.write(c);
答案是7
e = a > b && c++ > d;
document.write(c);
答案是8
答案 0 :(得分:1)
var a = 3;
var b = 5;
var c = 7;
var d = 8;
var e;
e = a < b && c++ > d;
document.write(c);
重要的部分是c = 7
e = a < b && c++ > d;
这使得c = 8(c ++)
第二个 e = a&gt; b&amp;&amp; c ++&gt; d;
因为a不大于b,Javascript不能解决第二部分(因为无论结果如何,e的结果都是假的)
所以第二个应该是7,顶部应该是8,给定你给它的值
答案 1 :(得分:0)
答案 2 :(得分:0)
e = a&gt; b&amp;&amp; c ++&gt; d;
这样的条件 - (exp1&amp;&amp; exp2),当exp1导致false时,从不计算exp2。所以在上面的表达式中,你有一个&gt; b&amp;&amp; c ++&gt; d。因为a不大于b所以,即使有++运算符,c也不会递增。所以当你打印c时,它是7。
然而,e = a&lt; b&amp;&amp; c ++&gt; d;当a小于b时,计算前进到计算c ++&gt; d,结果c递增,其值为8.