var timeRemaining = 10
var energy = 10
console.log("Game over:" + timeRemaining == 0 || energy == 0);
你好,在下面我只得到我的输出为真,但我的输出应该是游戏结束:真的吗?请帮忙谢谢。(https://i.stack.imgur.com/jq3n3.png)
我试着改变qoutes或做布尔和一个单独的行,但我不能修复。
var timeRemaining = 10
var energy = 10
console.log("Game over:" + timeRemaining == 0 || energy == 0);
你好,在下面我只得到我的输出为真,但我的输出应该是游戏结束:真的吗?请帮忙谢谢。(https://i.stack.imgur.com/jq3n3.png)
我试着改变qoutes或做布尔和一个单独的行,但我不能修复。
5条答案
按热度按时间qcuzuvrc1#
运算符优先级规则意味着:
被评价为:
这意味着
("Game over:" + timeRemaining) == 0
永远不会为真然后,当
var energy = 10
时(energy == 0)
将为false,因此整个表达式将评估为false。您应该改为:
或
7xzttuei2#
首先,运算符优先级“+”
第二,运算符优先级“==”
第三,运算符优先级“==”
最后
5jdjgkvh3#
可读性更强的是:
ni65a41a4#
您需要在条件两边加上括号,否则将被解释为:
首先js执行字符串连接
"Game over:" + timeRemaining
=〉“Game over:10”然后它检查字符串“Game over:10”是否等于0,结果不等于0。
然后另一边的||这也不是真的,所以控制台日志只打印false作为您设置的条件的结果。
要使其正常工作,您的行应如下所示:
console.log("Game over: " + (timeRemaining == 0 || energy == 0));
记录“游戏结束:false”?如果不是,我会将该行更改为:
if (timeRemaining === 0 || energy === 0) console.log('Game Over!')
下面是一些关于javascript的一般性建议:
var
-请改用let
或const
。check here===
优于==
)。oymdgrw75#
我在console.log中添加了一个新行,它工作了。这是通过的代码部分