第三组为什么不是返回!0

第三组为什么不是返回!0

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>逻辑操作符</title>
</head>
<body>
    <script>
    var x=NaN,y=undefined,z=1;

    var m=1,n="0",j=33;

    var a=!(!undefined),b=!0;
    
    var result;
    
    document.write(result=(x||y||z)+"<br/>");//1
    document.write(result=(m||n||j)+"<br/>");//1
    document.write(result=(a||y||b)+"<br/>");//!0
//补充代码
</script>
</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕码 2019-07-29 15:47:54

同学你好!

对于逻辑或运算符, 如果有一个操作数的隐士类型转换结果为true,就会返回该操作数,按着这个原理:a=!(!undefined)的结果是false,b=!0的结果是true, 

http://img1.sycdn.imooc.com//climg/5d3ea2d700019b5505950081.jpg

http://img1.sycdn.imooc.com//climg/5d3ea28e0001267d10390732.jpg

如果帮助到了你 欢迎采纳 祝学习愉快~

  • 提问者 慕言_7946275 #1
    b=!0的结果是true 不就应该返回这个操作数吗,,不是!0吗?为啥返回数写布尔值true啊
    2019-07-29 16:17:40
  • 好帮手慕码 回复 提问者 慕言_7946275 #2
    是返回的该操作数,但是!0这时候已经转换为true了
    2019-07-29 19:18:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师