老师讲得有问题吧

老师讲得有问题吧

console.log(0 && NaN);  

console.log(0 && null);  

console.log(0 && undefined);

返回的都是0,所以不应该说是只要存在NaN、null、undefined就返回NaN、null、undefined,

而应该是在前两条规则(如果第一个操作数隐式类型转换后为ture,则返回第二个操作数,第一个转换为false,则返回第一个操作数)的前提下做判断,

或者只以这两条作规则,因为NaN、null、undefined的隐式类型转换都为false。

所以是老师讲错了还是我理解错了。

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

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

2回答
精慕门5259554 2017-10-27 18:16:08

&&的返回值就是第一个false,||的返回值就是第一个true,如果没有的话就是最后一个值。老师的可能在以后有什么不同的例子吧,目前我觉得我总结的都适用。

一路电光带火花 2017-10-23 11:31:50

这里不是符合“第一个转换为false,则返回第一个操作数”这一条了哟,0转换了不就是false哟,所以直接返回0了呢,还没有到NaN、null、undefined的时候,就已经返回了呀。

  • 提问者 sherryliu #1
    所以也是返回0,不是返回NaN,null,undefined
    2017-10-23 11:40:37
  • 刑风 回复 提问者 sherryliu #2
    但是当第一个值为真,第二个为NaN、且还有其它值的时候,却不是返回最后一个,而是返回NaN
    2017-10-31 17:32:44
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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