关于&&操作符:
问题:
“只要有NaN就返回NaN”,那为什么“document.write(0&&NaN)”返回的是0呢?
我觉得&&操作符的原则应该是这样子的:
若操作数中含有非bool值
1. 第一个为true或隐式转换为true:
1.a) 其他中含有null、undefined、NaN:这三个谁在前面返回谁。
1.b) 其他中无这三个:返回最后一个操作数。
2. 第一个为false或隐式转换为false:
2.a) 第一个为false:返回false。
2.b) 第一个为非bool但隐式转换为false:返回第一个操作数。
3. 第一个为非bool且不能隐式转换:
此时第一个只能为null、undefined、NaN。所以返回第一个操作数。
不知道这样总结是否正确?
17
收起
正在回答
3回答
所有的这些转换的规律必须先遵循这两点
如果第一个操作数隐式类型转换后为false,那么就不会再往后执行第二个操作数。
document.write(0&&NaN)这个代码中,0隐式转换后为false,所以不再往后判断,返回的就是0。
祝学习愉快!
HTML5与CSS3实现动态网页 2018
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星