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

当jq1=numa>numb||numa;时,输出的结果是50,不是布尔值

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>逻辑或</title>
<script type="text/javascript">
var numa,numb,jq1;
numa=50;
numb=55;
jq1=numa>numb||numa;
document.write("jq1的值是:"+jq1+"<br>")
</script>
</head>
<body>
</body>
</html>

jq1=numa>numb||numa;时,为什么输出的结果是50,而不是布尔值,如果连判断都不加的话:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>逻辑或</title>
<script type="text/javascript">
var numa,numb,jq1;
numa=50;
numb=55;
jq1=numb||numa;
document.write("jq1的值是:"+jq1+"<br>")
</script>
</head>
<body>
</body>
</html>

输出的是55

这是因为没有给||加上条件,机器直接忽略了吗?

正在回答

2 回答

同学啊,你根本就没理解到什么叫逻辑或,逻辑或就是第一为真的话就返回一,否则就返回二!


你的例子:

jq1=numa>numb||numa;     

numa>numb为假,他自然就放回二也就是numa啊

jq1=numb||numa;

这个里面numb为真直接就返回numb了,你可以把numb改为负数试试!你就知道了!

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

烜烜 提问者

非常感谢!
2016-01-27 回复 有任何疑惑可以回复我~

不好意思,说错了,第二个例子里面你可以把numb改为0,null试试!也就是当numb为假时,他就会返回numa了!

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

烜烜 提问者

师傅你好,感谢你的细心指导,第一个理解了。 但我对第二个还是不太理解 numa=50; numb=55; jq1=numb||numa; //这里numb是依据什么判断true和false的:)
2016-01-26 回复 有任何疑惑可以回复我~
#2

sjywz 回复 烜烜 提问者

js在判断时会自动把不是Boolean的转换为Boolean(布尔值),而在js中出了0,null,"",false,undefined,NaN之外所有的值都为true!
2016-01-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

当jq1=numa>numb||numa;时,输出的结果是50,不是布尔值

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