⑴ javascript 中 null,NaN和undefined的区别总结
null 是指一个空白对象,即什么都没有、什么都不存在
NaN是Not a Number(不是一个数字)的简称,即变量或表达式的值不是数字或可转化为数字的其他值
undefined的意思就是未定义、未声明,任何未经声明的对象(如变量、函数等)都是undefined
⑵ Javascript 中 null,NaN和undefined的区别
undefined 是未定义的值和定义未赋值,一般出现在对象属性不存在或声明了变量但从未赋值时;
null 是一种特殊的 object,包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、boolean、数组或对象;
NaN 是一种特殊的 number,表示“非数字”(非数字的含义不仅仅是不是数字,也包括无理数和溢出数值)。
undefined 与 null 是值相等,但实际并不等(== 和 === 的区别);NaN 与任何值都不等,与自己也不想等。
⑶ js 为什么undefined + 1的结果是NAN
NaN在javascript中表握迅示“非法贺渗数值”,但仍然是数值类型,typeof(a)返回number
undefined在javascript中表示“未定义”,将它强制转换成数值会段拍此返回NaN,所以undefined + 1也会返回NaN。
⑷ JS数字类型之NaN及isNaN
什么是NaN:
NaN 就是在发生类型强制转换的时候会产生 NaN ,也就是把其他类型转换成 Number 类型时,不能转换而返回的结果。
几种转换为 Number 类型的方法及可能出现NaN情况:
第一种转换函数:parseInt / parseFloat
console.log(parseInt(" 我是谁 ")); console.log((" 我是谁 "));
以上两种转换函数的结果就会返回 NaN 因为转换的不是一个有效数字啊。
第二种强制转换类型: Number()
console.log(Number("12px")); 返回 NaN 因为不是一个有效数字,后面有文字
第三种变量弱类型转换:
var str = '012.345 '; var x = str - 0; console.log(x, typeof x); // 这就是正常的了
那在JS中不管是什么都会有个类型,那 NaN 是个啥类型呢?
这里可以看到,NaN 的类型是 Number,那既然是 Number 类型,那我用它来比较是不是 数字类型 可不可以勒,那咱们就来看一下。
那这里怎么返回的都是 false 呢? 并且自己连自己都不等于,NaN的英文翻译是:Not a number (不是一个数字的缩写),那居然你不是一个数字 比喻是A,我也不是一个数字 比喻是B,那么 A == B 嘛?你会发现并不相等 返回 false。
那我想判断一个 变量是不是数字类型,不能使用NaN方法,那就有了 isNaN 的出现,请看下方用法:
isNaN 返回值是 如果你是有效数字,就是返回false,这里为啥是false 请看上面 NaN 英文的翻译 ,如果你返回的不是一个有效数字就是 true。
原理相当于是:
这里你会发现,判断的时候通过Number进行了一波隐式转换,才得到最终结果 false。
说到在项目中真实的用处,目前还没有遇到,但是如果你了解这个方法,遇到相关处理数据需要判断时,你就会想到它啦,以上就是本人对 NaN 及 isNaN 的相关介绍, 还有那句话:如有不对之处及不周之处请大佬们指出,也希望对一些人有所帮助,咱们下次再会!
⑸ javascript中NaN == NaN的返回值是
NaN是一个值类型,同是也是一个数值.意思是Not A Number,这个都知道是什么意思.值比较特殊,特殊在于NaN是一个数字,是一个与任何数值都不相等的数字.
javascript:alert(typeof(NaN));可以完全证实,这是一个数字类型的值.也就是说NaN是当时转换时一种出错的策略,转成一个谁也不认识的数字而已.从这个角度上理解它是一个数字,可以理解成数学中的无穷大或是无穷小.但与数学中一个理论是相悖的,我们常说,无穷大加1等于无穷大是错误的.正是无空大加1不等于无穷大,所以无穷大也不等于它自己本身.所以数值NaN连自身都不会相等的.
而在javascript中NaN既然作为一个无穷大,那么它表示的就不再是一个值,而是一类值,所以有时可视NaN是一个类型.
正是这样的边缘问题,可以导致作如下测试是正确的:
javascript:alert(NaN+1);结果是无穷大.
但唯一的是NaN是一个不确定数,所以NaN不能等于NaN.
这好比是randomise中的random,random +1 还是一个不确定的数值,但random不会等于random一样.两者的区别在于random能生成一个确定数,但本身不确定.而NaN生成的就是一个不确定数.
⑹ javascript 中的isnan什么意思
你好,isNaN就是判断是否为一个数字。在检测用户输入和参数检测时很有用。
定义和用法
isNaN() 函数用于检查其参数是否是非数字值。
语法
参数描述:
x 必需。要检测的值。
返回值
如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。
说明
isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。
如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。正因为如此,isNaN() 函数是必需的。
提示和注释
提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。
⑺ 在javascript中,nan, null和undefined的区别是什么
NaN:保留值(不是数字)
null:未定义或空字符串
undefined:对象属性不存在,或,声明了变量但从未赋值。
NaN很少直接使用,而是用isNaN(numValue)的形式来进行判断,如果numValue是数字,那么返回false,反之,返回true(即NaN)
另外两个很常见,就不用解释了吧?