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

  • 相关阅读:
    How to do Deep Learning on Graphs with Graph Convolutional Networks
    《编程珠玑》读书笔记
    NFFM的原理与代码
    场感知因子分解机器的原理与代码
    数学公式中的变体字母
    因子分解机原理与代码
    LightGBM GPU python版本安装
    Pytorch:使用GPU训练
    [FJOI2020]世纪大逃亡 题解
    [统一省选2020]冰火战士 题解
  • 原文地址:https://www.cnblogs.com/lixiaodong86171/p/7553422.html
Copyright © 2011-2022 走看看