Javascript Don';不要根据特定的输入做某事 input=window.prompt() x=真 if(输入包括(“停止工作”)){ 如果(x=真){ console.log(“不工作”) } x=假 } 如果(x=真){ 控制台日志(“工作”) }

Javascript Don';不要根据特定的输入做某事 input=window.prompt() x=真 if(输入包括(“停止工作”)){ 如果(x=真){ console.log(“不工作”) } x=假 } 如果(x=真){ 控制台日志(“工作”) },javascript,Javascript,理论上,当我在窗口提示符中输入停止工作时,它不应该记录工作,但是,当我输入停止工作时,它会记录不工作,然后记录工作,即使x为false,当它为true时,它应该只记录工作。问题在于如果(x=true)您正在向x传递默认参数,所以这总是正确的,在这种情况下正确的答案是: input=window.prompt() x=真 if(输入包括(“停止工作”)){ 如果(x==true){ console.log(“不工作”) } x=假 } 如果(x){//这里 控制台日志(“工作”) }此代码甚至不

理论上,当我在窗口提示符中输入
停止工作
时,它不应该记录
工作
,但是,当我输入
停止工作
时,它会记录
不工作
,然后记录
工作
,即使
x
false
,当它为true时,它应该只记录
工作

问题在于
如果(x=true)
您正在向
x
传递默认参数,所以这总是正确的,在这种情况下正确的答案是:

input=window.prompt()
x=真
if(输入包括(“停止工作”)){
如果(x==true){
console.log(“不工作”)
}
x=假
}
如果(x){//这里
控制台日志(“工作”)

}
此代码甚至不应该工作。您没有使用任何
=
用于赋值,而
=
==
用于比较它们。@optiq您不需要
在每一条语句上-人们不使用它们是很常见的-一些标准甚至强制不使用它们-也请参见哦。。。nvm然后lol.@Emusaurus,确保您正确且稳定地编写代码。这将帮助您发现愚蠢的错误——正如我喜欢称之为愚蠢的错误——因为您在编程方面做得更好。变量x是一个布尔值,所以他需要将其用作:input=window.prompt()x=true if(input.includes(“stop working”){if(x){console.log(“not working”)}x=false}if(x){console.log(“working”)}正在比较对象而不是值如果您真的想开始优化代码,您甚至不需要输入变量。快捷方式
console.log(window.prompt()。包括(“停止工作”)?“不工作”:“工作”)
将失效。他可以这样做:
x==true
,这很奇怪,但他可以。我已经添加了一个代码,他不需要内部的
,如果
@Lain是的,想法只是澄清一下,有一个更好的方法可以与原始方法相比,但是有成千上万种不同的方法可以做到这一点。