这道题结果为啥是D啊我不太明白

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

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

1回答
好帮手慕久久 2021-08-01 14:53:28

同学你好,解答如下:

逻辑运算时(与、或、非),会进行隐式类型转化,比如0、null、undefined、NaN、空字符串“”会被转成false。而非0的数字、非空字符串则会被转成true(记住即可)。

1、使用逻辑或(||)时,如果有一个操作数为true,那么整个逻辑或表达式返回的就是true(固定的,记住即可)。

第一个if语句中,num是false(0对应false)、num1是true(数字1对应true)、str1是true(IMOOC是非空字符串,对应true),所以第一个if的条件是true,会弹出“hello”。

第三个if语句中,blean是false,!是取反操作,则!blean是true(false的反面就是true)、str是空字符对应false,num是false。由于!blean是true,所以会弹出“hello word”

第一个if、第三个if 合在一起会弹出“hello hello word”(答案D)。

2、使用逻辑与(&&)时,只要有一个操作数为false,那么整个逻辑与表达式返回的就是false。第二个if,由于blean是false,所以条件整体就是false,不会弹出“word”。

综上,答案是D。

祝学习愉快!

  • 在请问一下,或运算不是存在短路计算吗?那第一个if语句中的条件的结果值不应该是num1的值1吗?

    2022-12-03 21:36:56
  • 问题解答如下:

    1、或存算确实存在短路计算

    2、if语句中的条件,默认会转换为布尔值,或运算返回结果是num1的值1,但会被转换为布尔值true,所以if的条件成立,执行里面的语句,弹出hello

    祝学习愉快~

    2022-12-04 09:56:32
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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