zoukankan      html  css  js  c++  java
  • NaN与Null与undefiined的关系

    在js中,定义一个变量需要通过关键字var来定义,定义的变量可以是字符串、数字等等都行。但是如果你只是定义了一个变量,没有给他赋值,那么它就默认为'undefined'。例如

    1 var name;
    2 console.log(name);//输出为:undefined
    3 var age=18;
    4 console.log(age);//输出为:18

    但是,undifined、null、NaN之间到底是什么关系呢?为什么undifined会变成NaN呢?NaN又不是基本数据类型,他是什么呢?这是因为表达式中发生了类型转换。

    NaN:Not a Number,它是js中的一个特殊的数值,也就是“非数字”。在数学运算时产生了为止的结果或错误,js就会返回NaN,它表示运算结果是一个非数字。例如,用0除以0,就是一个非数字。

     而undefined与null,就是没有关系。

    null,是用于定义空的或不存在的应用,表示一个变量被赋予了一个空值。而undefined则表示该变量尚未赋值。

    一般来说,什么数据类型就各回各家,各找各妈才对。比如算数运算时,数据类型就应该是number。字符串连接时,数据类型就应该是string。但是JS心大,允许云算法对不匹配的操作数进行计算。在这个过程中,不匹配的操作数就发生了类型转换。

    他们的转换遵循一下的规则。

    undefined转数值:NaN

    null转数值:0

    字符串转数值:如果内容是数字,则转为number;如果内容是非数字的字符串,则转为NaN;如果一半数字一半字符串呢?就是下面这种情况:

    var i=1+1;
    console.log(i);//2
    var j='1a'+2;
    console.log(j);//1a2
  • 相关阅读:
    洛谷 P2108 学英语
    洛谷 P1010 幂次方
    洛谷 P1101 单词方阵
    洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes
    洛谷 P1553 数字反转(升级版)
    hdu_1348_Wall(凸包)
    hdu_1392_Surround the Trees(凸包)
    hdu_1115_Lifting the Stone(求多边形重心)
    Codeforces Round #354 (Div. 2)_Vasya and String(尺取法)
    hdu_1558_Segment set(并查集+计算几何)
  • 原文地址:https://www.cnblogs.com/qingshanyici/p/10403666.html
Copyright © 2011-2022 走看看