美文网首页
JavaScript isNaN() 函数

JavaScript isNaN() 函数

作者: cain07 | 来源:发表于2020-12-22 16:47 被阅读0次

定义和用法
isNaN() 函数用于检查其参数是否是非数字值。

isNaN的用法:检测当前值是否不是有效数字,返回true代表不是有效数字,返回false是有效数字

//=>语法:isNaN([value])
var num=12;
isNaN(num); //->检测num变量存储的值是否为非有效数字 false

isNaN('13') =>false
isNaN('你好呀') =>true
isNaN(true) =>false
isNaN(false) =>false
isNaN(null) =>false
isNaN(undefined) =>true
isNaN({age:9}) =>true
isNaN([12,23]) =>true
isNaN([12]) =>false
isNaN(/^$/) =>true
isNaN(function(){}) =>true

1、isNaN检测的机制:首先验证当前要检测的值是否为数字类型的,如果不是,浏览器会默认的把值转换为数字类型

[字符串转数字]
Number('13') ->13
Number('13px') ->NaN 如果当前字符串中出现任意一个非有效数字字符,结果则为NaN
Number('13.5') ->13.5 可以识别小数
[布尔转数字]

Number(true) ->1
Number(false) ->0
[其它]
Number(null) ->0
Number(undefined) ->NaN

把引用数据类型值转换为数字:先把引用值调取toString转换为字符串,然后再把字符串调取Number转换为数字

2、当前检测的值已经是数字类型,是有效数字返回false,不是返回true(数字类型中只有NaN不是有效数字,其余都是有效数字)

parseInt / parseFloat,等同于Number,也是为了把其它类型的值转换为数字类型

和Number的区别在于字符串转换分析上

Number:出现任意非有效数字字符,结果就是NaN
  parseInt:把一个字符串中的整数部分解析出来,parseFloat是把一个字符串中小数(浮点数)部分解析出来

parseInt('13.5px') =>13
parseFloat('13.5px') =>13.5
parseInt('width:13.5px') =>NaN 
从字符串最左边字符开始查找有效数字字符,并且转换为数字,但是一但遇到一个非有效数字字符,查找结束

因此,使用isNaN之前,最好判断一下数据类型。

function myIsNaN(value) {
  return typeof value === 'number' && isNaN(value);
}

判断NaN更可靠的方法是,利用NaN为唯一不等于自身的值的这个特点,进行判断。

function myIsNaN(value) {
  return value !== value;
}

相关文章

  • 判断NAN

    JavaScript isNaN() 函数 定义和用法 isNaN() 函数用于检查其参数是否是非数字值。 语法 ...

  • JavaScript isNaN() 函数

    定义和用法isNaN() 函数用于检查其参数是否是非数字值。 isNaN的用法:检测当前值是否不是有效数字,返回t...

  • JavaScript 之 isNaN()函数

    定义: JavaScript 的 isNaN()函数用于检查参数是不是非数字值。 用法: isNaN(x) x:需...

  • JavaScript 之 isNaN()函数

    定义: JavaScript 的 isNaN()函数用于检查参数是不是非数字值。 用法: isNaN(x) x:需...

  • js isNaN && Number.isNaN()

    isNaN isNaN 函数的必要性 与 JavaScript 中其他的值不同,[NaN]不能通过相等操作符(==...

  • JavaScript--isNaN()函数

    isNaN() 函数可用于判断其参数是否是非法的数字 1)isNaN(123)false2)isNaN("123"...

  • javascript数据类型隐式转换

    javascript数据类型隐式转换 一、函数类 isNaN()改函数会对参数进行隐式的Number()转换,如果...

  • JavaScript函数isNaN与数值提取

    NaN类型(not a number),意思是非数值。但是它属于number 类,typeof出来的类型是numb...

  • JQuery相关

    18.12.191、isNaN()内置函数的用法,不是数据格式的返回true!!(1)isNaN() 函数通常用于...

  • 函数定义,函数劫持,全局函数

    函数的定义 函数劫持 全局函数(掌握isNaN eval)

网友评论

      本文标题:JavaScript isNaN() 函数

      本文链接:https://www.haomeiwen.com/subject/lamsnktx.html