`

JavaScript中NAN详解

    博客分类:
  • JS
JS 
阅读更多

【NAN简介】

      NaN,是Not a Number的缩写

      在计算中, NaN 代表一个非数字, 是用来呈现未定义(undefined)和不可呈现(unrepresentable)的数据类型, 尤其是在浮点计算中。既是一种计算机用语,用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根。还指一个预定义的常量,表示“不明确的数值结果”

 

【定义】

NaN 属性用于引用特殊的非数字值

 

【说明】

无法使用 for/in 循环来枚举 NaN 属性,也不能用 delete 运算符来删除它

NaN 不是常量,可以把它设置为其他值

 

【用法】

一般用isNaN() 来判断一个值是否是数字

原因是 NaN 与所有值都不相等,包括它自己 

 

【概论】

   编码中很少直接使用到 NaN

   通常都是在计算失败时,作为 Math 的某个方法的返回值出现的(例如:Math.sqrt(-1))或者尝试将一个字符串解析成数字但失败了的时候(例如:parseInt("blabla"))

 

【判断一个值是否是NAN】NaN

   等号运算符(== 和 ===) 不能被用来判断一个值是否是 NaN。必须使用 Number.isNaN() 或 isNaN() 函数。在执行自比较之中:NaN,也只有NaN,比较之中不等于它自己

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

 

【NAN应用】

(1)数据处理:

      在实际工程中经常数据的缺失或者不完整,此时可以将那些缺失设置为nan,Matlab处理缺失的数据时就会跳过或者其它处理——这个是Matlab优越于其它语言的表现之一。另外但读取数据时,某个字符不是数据,那么Matlab自动将它认为nan处理

(2)绘图:

      如果想挖掉一部分,那么nan就起作用了

 

【案例】

 ①通过 NaN 来判断一个值

<script type="text/javascript">
var test1="300"
var test2="Hello World!"
document.write(Number(test1)+ "<br />")
document.write(Number(test2)+ "<br />")
document.write(isNaN(test1)+ "<br />")
document.write(isNaN(test2))
</script>

 

【拓展】

NaN这个特殊的Number与所有其他值都不相等,包括它自己:

NaN === NaN; // false

唯一能判断NaN的方法是通过isNaN()函数:

isNaN(NaN); // true

 

 

关于NAN还有些模糊,具体可以参考http://ourjs.com/detail/5383eb8f7610019548000012

 

 

 

 

 

 

 

 

 

 

.

分享到:
评论

相关推荐

    详解JavaScript的BUG和错误

    即便发现了这类问题,JavaScript在执行时也可能不会立即报错,而是返回一些无意义的结果,如NaN(不是数字)或undefined。这种设计虽然赋予了JavaScript极大的灵活性,但也导致了程序中可能出现不易察觉的错误。当...

    javascript数据类型详解

    ### JavaScript数据类型详解 #### 一、JavaScript中的数据类型 JavaScript语言是弱类型的,它具有六种基本数据类型和一种引用数据类型。基本数据类型包括Undefined、Null、Boolean、Number和String,而引用数据...

    详解JavaScript中双等号引起的隐性类型转换_.docx

    在JavaScript中,双等号(==)用于比较两个值是否相等,但在这个过程中,它可能会引起隐性类型转换,即在比较之前自动将不同类型的值转换为同一类型。这种转换有时会导致意料之外的结果,因此理解其工作原理对编写...

    JavaScript对象模型

    需要注意的是,在提及这些类型时,并非指代JavaScript中的全局对象如`NaN`、`Boolean`、`Number`、`String`等,而是指这些数据类型的名称。 #### 三、对象 对象是JavaScript中最基础且重要的数据结构之一,它是一...

    【JavaScript源代码】JavaScript parseInt()与Number()区别案例详解.docx

    JavaScript中的`parseInt()`和`Number()`函数都是用来将非数字的字符串转换成数值类型,但它们之间存在一些关键的区别。本文将深入探讨这两个函数的工作原理和应用场景。 `parseInt()`函数主要用于将一个字符串解析...

    JavaScript数组特性与实践应用深入详解

    JavaScript数组是该语言中一种用于存储有序集合的数据结构,它的操作和特性非常丰富,为开发者处理数据集合提供了极大的便利。本文将深入探讨JavaScript数组的特性以及在实际编程中的应用。 首先,数组字面量是定义...

    详解JavaScript中双等号引起的隐性类型转换

    引子 if语句应该是程序员用的比较多的语句,很多时候都要进行if判断,if语句...一、首先看双等号前后有没有NaN,如果存在NaN,一律返回false。 二、再看双等号前后有没有布尔,有布尔就将布尔转换为数字。(false是0,t

    JavaScript 数据类型详解

    JavaScript 数据类型是编程中至关重要的概念,它定义了变量可以存储的数据种类。在ES5标准中,JavaScript提供了六种原始数据类型(不包括ES6引入的Symbol):number、string、boolean、null、undefined,以及一种...

    JavaScript类型系统之布尔Boolean类型详解_.docx

    在JavaScript中,布尔类型(Boolean)是基本的数据类型之一,用于表示逻辑上的真或假状态。它有两个预定义的值:`true`表示真,`false`表示假。这种类型在编程中扮演着至关重要的角色,尤其是在控制程序流程方面。 ...

    使用JavaScript增强交互效果

    由此可见,本文旨在介绍JavaScript的基本概念及其在网页开发中的应用技巧。 #### 核心知识点详解 ##### JavaScript基础语法 - **变量声明**:使用`var`关键字声明变量,例如`var x;`。 - **数据类型**: - `...

    JavaScript基础笔记.md

    ### JavaScript基础知识点详解 #### 一、JavaScript简介 **JavaScript**是一种主要运行在客户端的脚本语言,它不需要经过编译就能直接由浏览器解析执行。这使得JavaScript成为了现代Web开发中不可或缺的一部分,...

    悟透JavaScript.pdf(想深入学习JavaScript的参考资料【精华】)[高清晰]

    #### 四、JavaScript的数据类型详解 - **Undefined**: 表示一个未知或未定义的值,任何未初始化的变量默认值为`undefined`。 - `typeof(undefined)` 返回 `undefined`。 - **Null**: 代表一个空值,虽然类型被认为...

    悟透javascript

    在《悟透JavaScript》一书中,作者李战(leadzen)引领读者深入理解JavaScript的核心概念,强调了编程世界中数据与代码的基本关系及其在JavaScript中的独特体现。本书不仅因其文笔优美、代码示例丰富而备受推崇,更...

    javascript等号运算符使用详解

    JavaScript中的等号运算符用于比较两个值是否相等。等号运算符由双等号(==)表示,在JavaScript中,当两个运算数在比较时值相等,它返回true。但是,JavaScript的等号运算符在比较时会涉及数据类型转换的特殊规则,...

    JavaScript基础之this详解

    ### JavaScript this对象详解 在JavaScript中,`this`关键字是一个重要的概念,它指向函数执行时所在的上下文环境。这个环境可以是全局对象、当前对象、或者指定的某个对象。理解`this`的含义和用法对于掌握...

Global site tag (gtag.js) - Google Analytics