为什么返回值是0,不应该是undefined吗?

为什么返回值是0,不应该是undefined吗?

正在回答

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

2回答

同学你好, 如下所示,视频中老师讲解中有注释,只有当前面的操作数隐式类型转换后都为true时,那么有一个操作数为null/NaN/undefined,就会返回这个值。

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

这道题中,由于0隐式类型转换结果为false,不满足“前面的操作数隐式类型转换后都为true”这个条件,所以返回的是0,而不是undefined。可以再结合老师的上一条回答理解下。

祝学习愉快~

好帮手慕慕子 2020-06-02 11:16:10

同学你好,逻辑与运算中,运算数中如果存在undefined,结果不一定是undefined,还需要看undefined前面的运算数是真或假。

运算数如果不是布尔值会进行隐式转化成布尔值,如果转化为true,就会继续判断下面的运算数,否则就直接返回了。代码中x的值是0,转化为布尔值是false:

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

不会继续往下面判断了,所以返回值是 0 。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 李昊雨 #1
    那null和NaN也需要判断吗,视频里老师讲的不是有这三种类型就返回这三种类型吗?
    2020-06-02 11:18:03
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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