一、概述
在 JavaScript 中,数字是一种基本的数据类型。JavaScript 还支持 Number 对象,该对象是原始数值的包装对象。
在必要时,JavaScript 会自动地在原始数据和对象之间转换。
1、数字可以是数字或者对象
数字可以私有数据进行初始化,就像 x = 123;
JavaScript 数字对象初始化数据, var y = new Number(123);
var x = 123; var y = new Number(123); typeof(x) // 返回 Number typeof(y) // 返回 Object (x === y) // 为 false,因为 x 是一个数字,y 是一个对象
2、精度
JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。
在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。JavaScript采用64位浮点格式表示数字,它能表示最大值为±1.7976931348623157 x 10308,最小值为±5 x 10 -324。
整数(不使用小数点或指数计数法)最多为 15 位。
var x = 999999999999999; // x 为 999999999999999 var y = 9999999999999999; // y 为 10000000000000000
小数的最大位数是 17,但是浮点运算并不总是 100% 准确:
var x = 0.2+0.1; // 输出结果为 0.30000000000000004
3、八进制和十六进制
如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为"0x",则解释为十六进制数。
var y = 0377; var z = 0xFF;
默认情况下,JavaScript 数字为十进制显示。
但是你可以使用 toString() 方法 输出16进制、8进制、2进制。
二、创建 Number 对象的语法:
var myNum=new Number(value); var myNum=Number(value);
参数 value :是要创建的 Number 对象的数值,或是要转换成数字的值。
返回值:
- 当 Number() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 Number 对象。
- 如果不用 new 运算符,把 Number() 作为一个函数来调用,它将把自己的参数转换成一个原始的数值,并且返回这个值(如果转换失败,则返回 NaN)。
二、Number 静态属性
- Number.MAX_VALUE:可表示的最大的数。
- Number.MIN_VALUE:可表示的最小的数。
- Number.NaN:非数字值。
- Number.NEGATIVE_INFINITY:负无穷大,溢出时返回该值。
- Number.POSITIVE_INFINITY:正无穷大,溢出时返回该值。
三、Number 对象方法
1、toFixed:把数字转换为字符串,结果的小数点后有指定位数的数字。
如果省略了该参数,将用 0 代替。
//将一个数字,不留任何小数: var num = 5.56789; var n=num.toFixed(); //6
把数字转换为字符串,结果的小数点后有指定位数的数字:
var num = 5.56789; var n=num.toFixed(2); //5.57
2、toExponential:把对象的值转换为指数计数法。
var num = 5.56789; var n=num.toExponential(3) //5.568e+0
3、toPrecision:把数字格式化为指定的长度。
使用不同进制把数字格式化为指定的长度:
var num = new Number(13.3714); var a = num.toPrecision(); //13.3714 var b = num.toPrecision(2); //13 var c = num.toPrecision(3);//13.4 var d = num.toPrecision(10);//13.37140000
4、toString:把数字转换为字符串,使用指定的基数。
var myNumber=128; myNumber.toString(16); // 返回 80 myNumber.toString(8); // 返回 200 myNumber.toString(2); // 返回 10000000