为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我输入true显示没票,输别的显示有票。换成输入0或1的话结果是正确的

<title>if...else</title>

<script type="text/JavaScript">

function tic(){

var ticket =prompt("输入查询");//ticket初值为true,表示有票


if(ticket==true)  

{

document.write("有票,可以看电影。");

}

else  

{

document.write("没票,电影看不成。");

}}

</script>

</head>

<body>

<form>

    <input type="button" value="点击输入" onclick="tic()">

</form>

</body>


正在回答

2 回答

这句 var ticket =prompt("输入查询");获取的是到的是字符串类型的变量,而你下面进行比较的是布尔类型,这就不匹配了,你可以改成 if(ticket==“true”)   而你说的输入0,1等就是你的逻辑问题了。应为0,1等不等于字符串"true",所以就都进入了else。

2 回复 有任何疑惑可以回复我~
#1

大神在路上 提问者

输入0显示没票,输入1显示有票。输入别的显示没票估计就是像你说的一个是字符串类型,一个是布尔类型
2016-06-09 回复 有任何疑惑可以回复我~
#2

大神在路上 提问者

非常感谢!
2016-06-09 回复 有任何疑惑可以回复我~
#3

_坐看云起时 回复 大神在路上 提问者

你还可以加个判断 ticket=(ticket=="true")?true:false;,有的时候1能代表真值,JavaScript我没过多涉及,不好多讲。
2016-06-09 回复 有任何疑惑可以回复我~
#4

_坐看云起时 回复 大神在路上 提问者

加了那个判断后就不用在if判断时候带双引号了。
2016-06-09 回复 有任何疑惑可以回复我~
#5

Molly喜 回复 大神在路上 提问者

数字0返回布尔值false,除了0以外的返回布尔值true;
2017-12-11 回复 有任何疑惑可以回复我~
查看2条回复

我尝试了一下,觉得因为多了个等号吧。==改成=,这样的话输入true或是1,输出的结果都是有票。

0 回复 有任何疑惑可以回复我~
#1

大神在路上 提问者

谢谢你的答案。我感觉判断if 的条件中间还是应该用“==”等号的,而=表示赋值。
2016-06-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我输入true显示没票,输别的显示有票。换成输入0或1的话结果是正确的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信