var name01 = null;返回布尔值为什么不是true?

var name01 = null;返回布尔值为什么不是true?

console.log(isNaN(name01));//isNaN()返回布尔值:true,false。
返回布尔值为什么不是true?

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

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

2回答
Hbrsql 2017-03-20 11:30:19

isNaN(null)相当于isNaN(Number(null)),即isNaN(0),结果为false.

isNaN()的参数不是Number类型时, isNaN()会首先尝试将这个参数转换为数值,然后才会对转换后的结果是否是NaN进行判断。

因此,对于能被强制转换为有效的非NaN数值来说( 值得一提的是,空字符串和布尔值会被强制转换为数值0或1),返回false值也许会让人感觉莫名其妙。比如说,空字符串就明显”不是数值“(not a number)。

这种怪异行为起源于:“不是数值”(not a number)在基于IEEE-794数值的浮点计算体制中代表了一种特定的含义。isNaN函数其实等同于回答了这样一个问题:这个值被强制转换成数值时会不会返回IEEE-754中所谓的”不是数值“(not a number)。

详见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/isNaN

提问者 web_東 2017-03-20 10:55:59

1:变量name01既不属于Number又不属于string,是属于object,空对象。

2:属于非数值类,那么应该返回值为true啊。

  • isNaN可以把以下转换为0再判断: "" " " null
    2017-11-13 16:13:23
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

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

在线咨询

领取优惠

免费试听

领取大纲

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