JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。
JavaScript的Number类型为双精度IEEE 754 64位浮点类型。
最近出了stage3BigInt 任意精度数字类型,已经进入stage3规范

数值字面量:数值的固定值的表示法

  1. 110 1024 60.5

进制

二进制

  1. var a = 0b111;

十进制

  1. var num = 9;
  2. console.log(num);
  1. 进行算数计算时,八进制和十六进制表示的数值最终都将被转换成十进制数值。

十六进制

var num = 0xA;
console.log(num);
数字序列范围:0~9以及A~F

八进制

var num1 = 07;   // 对应十进制的7
var num2 = 019;  // 对应十进制的19
var num3 = 08;   // 对应十进制的8
console.log(num3);

数字序列范围:0~7
如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析

浮点数

  • 浮点数的精度问题

浮点数

var n = 5e-324;   // 科学计数法  5乘以10的-324次方

浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数

var result = 0.1 + 0.2;    // 结果不是 0.3,而是:0.30000000000000004
   console.log(0.07 * 100);

不要判断两个浮点数是否相等

数值范围

最小值:Number.MIN_VALUE, JavaScript 中可表示的最小的数(接近 0,但不是负数),这个值为: 5e-324
最大值:Number.MAX_VALUE, JavaScript 中可表示的最大的数,这个值为: 1.7976931348623157e+308
无穷大:Infinity
无穷小:-Infinity

<script type="text/javascript">
  var t1=1.7976931348623157E+10308
  document.write(t1)
  document.write("<br />")
  var t2=-1.7976931348623157E+10308
  document.write(t2)
</script>

image.png

数值判断

  • NaN:not a number

NaN 与任何值都不相等,包括他本身

  • isNaN: is not a number

    toFixed( )

    toFixed( ) 方法使用定点表示法来格式化一个数值。

语法: numObj.toFixed(digits)
参数: digits:小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0。
返回值: 使用定点表示法表示给定数字的字符串。

    var a = 1;
        var b = 3.14;
        //typeof可以查看变量的类型
        //alert(typeof(a));
        //alert(typeof(b));

        var c = 0b111; //0b代表2进制   2进制满2进1  
        console.log(c);

        var d = 111;  //十进制   十进制满10进1

        var e = 017;  //八进制用0 表示  8进制满8进1
        console.log(e);

        var f = 0xaa;  //十六进制   满16进1  
        console.log(f);

        //浮点数是有一个精度的问题
        var g = 0.1+0.2;
        console.log(g);
        //对于浮点数而言,不要判断两个浮点数他们是否相等,因为在计算的时候会有精度问题
        console.log(0.3 == 0.1+0.2);

        //求NUmber类型的最大值和最小值
        console.log(Number.MAX_VALUE);
        console.log(Number.MIN_VALUE);

        //字符串+数字
        var s = "a";
        s = s+123;
        //isNaN判断一个值是否是非数字
        console.log(isNaN(s));

        //NaN表示非数字
        var k = parseInt(s);
        console.log(k);

image.png