美文网首页
javascript数据类型

javascript数据类型

作者: 探索1者 | 来源:发表于2018-12-10 15:06 被阅读0次

    null, undefined 和布尔值教程

    详细教程:(https://wangdoc.com/javascript/types/null-undefined-boolean.html)

    数值

    详细教程:(https://wangdoc.com/javascript/types/number.html)

    整数和浮点数

    JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。
    1 === 1.0 // true
    这就是说,JavaScript 语言的底层根本没有整数,所有数字都是小数(64位浮点数)。容易造成混淆的是,某些运算只有整数才能完成,此时 JavaScript 会自动把64位浮点数,转成32位整数,然后再进行运算,参见《运算符》一章的”位运算“部分。
    由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。

    0.1 + 0.2 === 0.3
    // false
    0.3 / 0.1
    // 2.9999999999999996
    (0.3 - 0.2) === (0.2 - 0.1)
    // false
    
    JavaScript 提供Number对象的MAX_VALUE和MIN_VALUE属性,返回可以表示的具体的最大值和最小值。
    Number.MAX_VALUE // 1.7976931348623157e+308
    Number.MIN_VALUE // 5e-324
    

    NaN

    含义

    NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。

    5 - 'x' // NaN
    上面代码运行时,会自动将字符串x转为数值,但是由于x不是数值,所以最后得到结果为NaN,表示它是“非数字”(NaN)
    

    另外,一些数学函数的运算结果会出现NaN。

    Math.acos(2) // NaN
    Math.log(-1) // NaN
    Math.sqrt(-1) // NaN
    0除以0也会得到NaN。
    0 / 0 // NaN
    需要注意的是,NaN不是独立的数据类型,而是一个特殊数值,它的数据类型依然属于Number,使用typeof运算符可以看得很清楚。
    
    typeof NaN // 'number'
    

    运算规则

    NaN不等于任何值,包括它本身。

    NaN === NaN // false
    数组的indexOf方法内部使用的是严格相等运算符,所以该方法对NaN不成立。
    
    [NaN].indexOf(NaN) // -1
    NaN在布尔运算时被当作false。
    
    Boolean(NaN) // false
    NaN与任何数(包括它自己)的运算,得到的都是NaN。
    
    NaN + 32 // NaN
    NaN - 32 // NaN
    NaN * 32 // NaN
    NaN / 32 // NaN
    

    相关文章

      网友评论

          本文标题:javascript数据类型

          本文链接:https://www.haomeiwen.com/subject/upbmcqtx.html