JavaScript条件判断语句失效求助:为何始终输出yes而非no?
问题原因与修复方案
嘿,我一眼就看到问题啦!你这里犯了一个JavaScript新手常踩的小坑~
核心问题:赋值运算符 vs 比较运算符
你在if条件里写的是:
if (username = "wow")
这里的=是赋值运算符,它的作用是把字符串"wow"赋值给变量username,而不是判断两者是否相等。更关键的是,赋值操作的返回值就是被赋的值(也就是"wow"),在JavaScript的布尔判断中,非空字符串会被判定为true,所以不管你输入什么内容,这个if条件都会成立,自然一直输出yes。
修复方法
要做相等判断的话,你需要用比较运算符:
==:松散相等,会自动做类型转换===:严格相等,不会做类型转换(推荐使用,避免类型转换带来的意外问题)
修正后的代码如下:
<script type="text/javascript"> var username = prompt("What is your VC?"); if (username === "wow") { document.write("yes"); } else { document.write("no"); } </script>
这样就能实现你想要的效果:只有当输入的内容严格等于"wow"时才输出yes,否则输出no。
内容的提问来源于stack exchange,提问作者DestinationHere
相关产品推荐
相关产品推荐

