zoukankan      html  css  js  c++  java
  • 关于NaN

    1. NaN

    NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言从而停止代码执行。但在 ECMAScript中,任何数值除以 0会返回 NaN①,因此不会影响其他代码的执行。

    NaN 本身有两个非同寻常的特点。首先,任何涉及 NaN 的操作个特点在多步计算中有可能导致问题。其次,NaN 与任何值都不相等,包括 NaN 本身。例如,下面的代

    码会返回 false

    alert(NaN == NaN); //false

    针对 NaN 的这两个特点,ECMAScript 定义了 isNaN()函数。这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNAN()在接收到一个值之后,会尝试

    将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串"10"Boolean 值。而任何不能被转换为数值的值都会导致这个函数返回 true。请看下面的例子

    alert(isNaN(NaN)); //true

    alert(isNaN(10)); //false10 是一个数值)

    alert(isNaN("10")); //false(可以被转换成数值 10

    alert(isNaN("blue")); //true(不能转换成数值)

    alert(isNaN(true)); //false(可以被转换成数值 1

    这个例子测试了 5 个不同的值。测试的第一个值是 NaN 本身,结果当然会返回 true。然后分别测

    试了数值 10 和字符串"10",结果这两个测试都返回了 false,因为前者本身就是数值,而后者可以被

    转换成数值。但是,字符串"blue"不能被转换成数值,因此函数返回了 true。由于 Boolean true

    可以转换成数值 1,因此函数返回 false

    ① 实际上只有 0 除以 0 才会返回 NaN,正数除以 0 返回 Infinity,负数除以 0 返回-Infinity

  • 相关阅读:
    Jessica's Reading Problem POJ
    FatMouse and Cheese HDU
    How many ways HDU
    Humble Numbers HDU
    Doing Homework again
    Stacks of Flapjacks UVA
    Party Games UVA
    24. 两两交换链表中的节点
    面试题 03.04. 化栈为队
    999. 可以被一步捕获的棋子数
  • 原文地址:https://www.cnblogs.com/lixiaodong86171/p/7553422.html
Copyright © 2011-2022 走看看