首页 > 其他 > 详细

NaN与Null与undefiined的关系

时间:2019-02-19 22:22:16      阅读:272      评论:0      收藏:0      [点我收藏+]

在js中,定义一个变量需要通过关键字var来定义,定义的变量可以是字符串、数字等等都行。但是如果你只是定义了一个变量,没有给他赋值,那么它就默认为‘undefined‘。例如

1 var name;
2 console.log(name);//输出为:undefined
3 var age=18;
4 console.log(age);//输出为:18

但是,undifined、null、NaN之间到底是什么关系呢?为什么undifined会变成NaN呢?NaN又不是基本数据类型,他是什么呢?这是因为表达式中发生了类型转换。

一般来说,什么数据类型就各回各家,各找各妈才对。比如算数运算时,数据类型就应该是number。字符串连接时,数据类型就应该是string。但是JS心大,允许云算法对不匹配的操作数进行计算。在这个过程中,不匹配的操作数就发生了类型转换。

他们的转换遵循一下的规则。

undefined转数值:NaN

null转数值:0

字符串转数值:如果内容是数字,则转为number;如果内容是非数字的字符串,则转为NaN;如果一半数字一半字符串呢?就是下面这种情况:

var i=1+1;
console.log(i);//2
var j=‘1a‘+2;
console.log(j);//1a2

 

NaN与Null与undefiined的关系

原文:https://www.cnblogs.com/qingshanyici/p/10403666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!