为什么num=="number"会成立,NaN不是与任何值都不相等吗?

来源:1-5 if语句的嵌套

慕勒3413819

2019-08-04 02:14:46

请问老师为什么num=="number"会成立,NaN不是与任何值都不相等吗?就算"number"隐式转换成数字类型也是NaN。难道NaN==NaN成立?

写回答

2回答

好帮手慕星星

2019-08-04

同学你好,理解的有问题哦:

代码中前面加了一个typeof检测:

http://img.mukewang.com/climg/5d46a7440001ffe007390378.jpg

这里是检测num变量是否为number类型,而不是判断num与"number"是否相等哦。例如:

http://img.mukewang.com/climg/5d46a7bd0001f8fc02640180.jpg

自己可以再理解下,祝学习愉快!

0

键盘上的莫扎特

2019-08-04

如果num=123  number="123" String类型的number在跟num比较的时候,会自动把引号去掉变成数值类型(隐式转换),所以二者在不考虑数据类型的情况下数值是相等的,如果num===number中间是三个等号,则返回false,因为三个等号代表“全等”,不仅要比较数值大小,而且还要考虑二者的数据类型

0

0 学习 · 40143 问题

查看课程