在前面我们介绍了对 undefined 进行算术运算以及对一些包含了不合法字符的数据进行数字类型的转换时,都会得到 NaN 的结果。对 NaN 使用 typeof 运算符,可以得到 number 结果,可知 NaN 是一个非数字的数字类型的数据,其对应的布尔值为 false。

通常得到这个值时,意味着程序进行了非法的运算操作。比如 alert('200px'-100) 的结果就是 NaN,因为字符串 '200px' 无法转换为数字,所以不能进行减法运算。需要注意的是,NaN 并不等于本身。

在实际应用中,有时为了程序的健壮性,或者出于某些应用的需要,我们需要对程序的运算结果或某些数据进行是否为数字类型的判断,即判断它们的值是否为 NaN。对此需求,JavaScript 提供了 isNaN() 函数来实现。isNaN 对应的英文单词为:is Not a Number,意思是是否不是一个数字。

isNaN() 函数的使用格式如下:

isNaN(value)

isNaN() 的作用是:判断指定参数是否为数字,是数字,返回 false,否则返回 true。

需要特别注意的 isNaN() 在判断参数是否为数字之前,会首先使用 Number() 对参数进行数字类型的转换。所以 isNaN(value) 其实等效于:isNaN(Number(value))。当参数 value 能被 Number() 转换为数字时,结果返回 false,否则返回 true。

例如:

alert(isNaN('250')); //Number()将字符串'250'转换为数字250,结果为:false

alert(isNaN(true)); //Number()将true转换为数字1,结果为:false

alert(isNaN('100px'));//Number()无法转换字符串100px为数字,结果为:true

下面我们通过一个具体的示例来演示一个 isNaN() 函数的应用。

【例 1】使用 isNaN() 判断文本框输入的值是否为数字。

使用isNaN()判断文本框输入的值是否为数字

window.onload = function(){

var aInp = document.getElementsByTagName("input");

aInp[1].onclick = function(){

var str = aInp[0].value;

if(isNaN(str)){

alert(str + "不是数字");

}else{

alert(str + "是数字");

}

};

}

上述代码中的 if…else… 是一种判断结构程序,用来实现条件判断,当 if 后面的括号中的值为 true 时,执行if后面大括号中所括的代码,否则执行 else 后面大括号所括的代码。

上述代码中的 if 判断语句使用 isNaN() 判断表单文本框输入的值是否为数字作为条件,当输入的值为数字时,isNaN() 返回 false,此时执行 else 语句块,否则执行 if 语句块。执行上述代码的最初结果如图 1 所示。

图 1:未输入数据的状态

当在图 1 中分别输入 abc 和 123 后,单击“判断输入值是否为数字”后弹出的结果分别如图 2 和图 3 所示。

图 2:在文本框中输入 abc 后的结果

图 3:在文本框中输入 123 后的结果

我们看到,例 1 使用了 isNaN() 来判断一个数据是否为数字,可能有些读者会想到使用 typeof 运算符,事实上,对示例 1 来说,使用 typeof 是无法达到目的的,因为,在 JS 程序中,从 HTML 页面中获取的任何元素的属性值,类型都是字符串。所以不管你在文本框中输入的是否是数字,获得的值都是字符串类型。

pythonisnan函数_JS isNaN()函数的用法相关推荐

  1. eval函数和isNaN函数

    (一)eval函数定义:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. (二)语法:eval(string)string必需. (三)返回值:通过计算 string ...

  2. php mvc vue 调用js函数_js 匿名函数自调用

    函数自调用就是,函数在创建的同时会自动调用,匿名函数里的参数外部是访问不到的,要通过window将参数挂载到全局,成为全局变量,从而让外界访问到 (function(win){//形参,此处接受的是w ...

  3. mysql.js回调函数_js回调函数(callback)

    Mark! js学习 不喜欢js,但是喜欢jquery,不解释. 自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速google之,发现原来中文翻译成回调.也就是回调函 ...

  4. (转)isnan函数matlab

    转 isnan函数matlab 2018年06月12日 22:00:04 甲虫ss 阅读数 1669 isnan函数:判断数组的元素是否是NaN.(Not a Number) matlab中出现NaN ...

  5. js判断是否是数字——isNaN()函数

    今天使用isNaN()函数判断是否是数字时遇到的问题,当变量是空串时,isNaN()的返回值还是false,但空串却不是数据,查了一下,才知道原来isNaN()把空串或空格作0处理的. isNaN 返 ...

  6. matlab中isnan函数

    isnan函数:判断数组的元素是否是NaN.(Not a Number) matlab中出现NaN的情况: 任何关于NaN的运算, 加减法:(+inf)+(-inf) 乘法:0*inf 除法:0/0: ...

  7. JavaScript isNaN() 函数

    JavaScript isNaN() 函数 返回 JavaScript 全局对象参考手册 定义和用法 isNaN() 函数用于检查其参数是否是非数字值. 语法 isNaN(x)参数 描述 x 必需.要 ...

  8. isnan函数matlab

    isnan函数:判断数组的元素是否是NaN.(Not a Number) matlab中出现NaN的情况: 任何关于NaN的运算, 加减法:(+inf)+(-inf) 乘法:0*inf 除法:0/0: ...

  9. IsNaN函数的使用

    1.isNaN() 全局函数用于检查其参数是否是非数字值. 2.语法:isNaN(x) 参数 描述 x 必需.要检测的值. 3.返回值:如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返 ...

最新文章

  1. python如何在手机上下载模块-Python 下载文件的 11 种方式
  2. java各种包的用途
  3. const形参与非const形参
  4. docker swarm MySQL_容器与云|在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理...
  5. CRM_REPORT_RF_AUTH_OBJ_ORD_LP
  6. eclipse报错资料备份
  7. mysql多主单向环形_mysql多主单向--gt;环形同步_MySQL
  8. linux重新启动某一个项目,Linux运维知识之supervisor更改某项目配置后 需要重新启动才有效...
  9. 详解VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射
  10. maven打包不用eclipse插件
  11. java icache_java手写多级缓存
  12. Silverlight显示滚动条
  13. 无任何网络提供程序接受指定的网络路径
  14. 360服务器已停止响应,对于 SQL Server 2017年累积更新 5
  15. Keras 中文文档地址
  16. word三线表标题两条线之间如何出现空白间隔(论文必备)
  17. STM8L超低功耗程序编写教学,简单易懂
  18. saveas中参数gcf的理解
  19. 计算机第一个应用领域是,第一代计算机主要应用领域是什么
  20. Rust reqwest框架开启cookie

热门文章

  1. 已重置应用默认设置html,win10系统经常提示已重置应用默认设置的解决方法
  2. 我目前常用的几种Java快捷键
  3. RD算法(三)渐入佳境 —— 方位频域处理
  4. 用筛法求之N内的素数。
  5. Django ORM 模糊查询和查询操作
  6. linux yum fping,ping fping
  7. JUC并发编程面试题突击复习
  8. Android第二课-----Kotlin入门
  9. 【有共鸣转载一下】毕业后,读这么一篇——《那些事,大学才读懂》,或许才懂大学
  10. 2022山东省安全员A证特种作业证考试题库及模拟考试