`

说说 JavaScript 的 isNaN

阅读更多
JavaScript 中 NaN 表示 Not a Number,isNaN 这个函数就是用来判断参数是不是不是数字。在 JavaScript 中,对于省略写法(如:".3"、"-.3")、科学计数法(如:"3e7"、"3e-7")、十六进制数(如:"0xFF"、"0x3e7")均被认定为数字格式,这类字符串都可以用 Number 转化成数字,也就是说这些字符串作为 isNaN 的参数时均返回 false(不是不是数字)。

下面看看几个特殊的参数值:
alert(isNaN("")); //false
alert(isNaN(null)); //false
alert(isNaN(undefined)); //true
alert(isNaN(NaN)); //true
alert(isNaN("38px")); //true

也就是说零长度字符串和 null 也会被看作数字。

其实 JavaScript 对待这些特殊字符值时是有矛盾的,这里有把零长度字符串和 null 看作数字,却在 parseInt 中把它们和 undefined 都看作不是数字。

同时我认为 isNaN 这个名字起得不好,很多情况下,我们想知道一个字符串是不是数字,而不是说它是不是不是数字,个人认为如果有个 isNumber 函数,返回 !isNaN(value),比较合适我们理解。


个人感觉,还不如使用length去判断是不是数字!
参考:http://www.cftea.com/c/2009/07/RZE9WBB33ZWUMD2N.asp



分享到:
评论

相关推荐

    javascript使用isNaN()函数判断变量是否为数字

    在JavaScript编程语言中,`isNaN()`函数是一个非常实用的工具,它主要用于判断一个变量或表达式的结果是否为非数字(Not-a-Number)值。这个函数对于处理用户输入、数据验证以及确保数值计算的准确性至关重要。以下...

    javascript的测试题两份

    15、分析javascript代码段,输出结果是: B  var a="125.8765"; c=parseInt(a); d=parseFloat(a); document.write(c+"  "+d) A) 125.8765 126 B) 125 125.8765 C) 125.8765 125 D) 126 125.8765

    javascript中全局对象的isNaN()方法使用介绍

    在JavaScript中,全局对象`isNaN()`是一个非常实用的函数,主要用于检查给定的值是否能够转换为一个合法的数字。这个方法广泛应用于检测`parseFloat()`和`parseInt()`这两个解析数字的函数返回的结果,以确保得到的...

    Javascript中的isNaN函数使用说明

    JavaScript中的`isNaN`函数是一个非常基础且常用的工具,用于判断给定的值是否为`NaN`,即"不是数字"。在JavaScript中,`NaN`是一个特殊的值,它表示一个无法表示为数字的值。`isNaN`函数接受一个参数`numValue`,...

    JavaScript基础复习大纲

    JavaScript 基础复习大纲 DAY1 一、JavaScript 简介 JavaScript 是一种基于对象(Object)和事件驱动(Event Driven)、并具有安全性...* 特殊数值:NaN、Infinity(除数为零),所对应的判断函数 isNaN()、isFinite

    JavaScript学习基础学习心得

    - **隐式类型转换**:例如`isNaN(demo)`会自动调用`Number(demo)`。 - **显式类型转换**: - `Number(demo)`:转化为数字类型。 - `String(demo)`:转化为字符串类型。 - `Boolean(demo)`:转化为布尔类型。 -...

    JavaScript-JavaScript语法集锦

    isNaN(parseFloat(n)) && isFinite(n); } console.log(isNumeric('123')); // true console.log(isNumeric('abc')); // false ``` - **`innerHTML` 和 `innerText` 属性**:获取或设置 HTML 元素的内容。 ```...

    JavaScript 教程.doc

    例如,`isNaN` 函数用于检测变量是否为非数字,若为非数字则弹出警告。 3. JavaScript 用法 在 HTML 中使用 JavaScript,`<script>` 标签必不可少。`<script>` 标签允许指定 `src` 属性引用外部的 JavaScript 文件...

    使用JavaScript增强交互效果

    ### 使用JavaScript增强交互效果 #### 标题与描述解析 标题“使用JavaScript增强交互效果”直接指出了文章的主题,即如何利用JavaScript这种编程语言来提升网页的交互性。描述部分进一步解释了文章的核心内容:...

    JavaScript基础语法资料 JavaScript代码 素材 笔记 作业资料.zip

    JavaScript基础语法资料 JavaScript代码 素材 笔记 作业资料,学习资料 01-编程语言.html 02-JS初体验.html 03-JS注释.html 04-JS输入输出语句.html 05-变量.html 06-变量案例.html 07-变量案例弹出用户名.html 08-...

    javascript_函数大全

    - `isNaN()`:判断传入的值是否为NaN。 - `isFinite()`:判断传入的值是否为有限数字。 - `encodeURI()`和`decodeURI()`:用于编码和解码URL。 - `encodeURIComponent()`和`decodeURIComponent()`:用于编码和解码...

    javascript脚本语言课件

    例如,我们可以使用isNaN()检查是否为数字,trim()去除字符串两端的空白,或者利用正则表达式验证邮箱格式。此外,自定义函数也可以用于更复杂的验证逻辑,确保用户输入的数据符合预设规则。 课件中包含的PPT和文档...

    达内JavaScript

    - `NaN`(Not a Number)用于表示非数字值,可通过`isNaN()`函数检测。 #### 运算符与表达式 JavaScript支持多种运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符等。类型转换常在运算中发生,例如将...

    Object_Oriented_Javascript

    - **预定义函数**:例如`parseInt()`、`parseFloat()`、`isNaN()`等,用于执行常见的数据操作。 - **作用域**:函数内声明的变量只能在该函数内部访问。 - **闭包**:当一个函数可以记住并访问在其外部创建的变量时...

    javascript控制年月日输入

    if (isNaN(year) || isNaN(month) || isNaN(day)) { throw new Error('输入必须为数字'); } year = parseInt(year); month = parseInt(month); day = parseInt(day); if (year || year > 9999) { throw new...

    韩顺平javascript课堂笔记完整版

    - 判断是否为数字可使用`isNaN()`,判断是否为有限数值使用`isFinite()`。 6. **命名规则**: - 变量和函数的命名可以包含大小写字母、数字和美元符号 `$`,但不能以数字开头,且不能使用JavaScript的保留字和...

Global site tag (gtag.js) - Google Analytics