JavaScript提供了三种基本数据类型:数值型、字符型和布尔型。还提供了这三种基本类型的对象表示方法,分别为Number对象、String对象和Boolean对象。本文将介绍Number对象的属性的方法。
使用Number()构造函数创建Number对象有两种方式,其语法分别为:
var number = new Number(value);
var number = Number(value);
其中参数value是一个数值,第一种语法格式使用了new
关键字,它创建一个Number对象,值为value。第二种语法格式没有使用new
关键字,Number()构造函数用作一个函数,它将参数value转换为基本数值类型,并返回转换后的值。
Number对象有一组属性,如下表所示:
| 属性 | 描述 | |-------------------|-----------------------------------| | MAX_VALUE | 代表可表示数值的最大值,约为1.79E+308 | | MIN_VALUE | 代表可表示数值的最小值,约为5E-324 | | NaN | 代表不是数值,于全局量NaN的意义和作用相同 | | NEGATIVE_INFINITY | 表示是负无穷大。在数值下溢出时得到该值 | | POSITIVE_INFINITY | 表示正无穷大。在数值上溢出时得到该值,于全局量Infinity相同 | | prototype | 用于扩展Number对象的属性和方法 |
Number对象还有一组方法,如下表所示:
| 方法 | 描述 | |------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------| | toExponential(digits) | 将数值转换为指数方式表示的字符串形式返回。指数表示中,整数部分占一位数字,小数点后面又digits位数。如果实际数字位数大于digits,那么进行截断;如果实际数字位数小于digits,那么末尾添0。digits的有效值在0-20之间。如果省略digits,那么小数点后有几位数字就会给出几位数字。 | | toFixed(digits) | 返回字符串形式表示的数值,不使用指数表示方式。小数点后的位数由digits参数指定,digits的有效值在0-20之间。 | | toLocaleString() | 使用本地数字格式将数值转换为字符串,在不同语言的系统中,千位分隔式可能不同 | | toPrecision(precision) | 返回一个包含precision为有效数字表示的字符串,按本地数字格式进行转换。precision的有效值在1-21之间。返回的字符串尽可能使用定点数表示法,否则使用指数表示法。必要时进行截断和填0操作 | | toString(radix) | 按指定的进制radix将数值转换为字符串,并返回该字符串。radix的有效值在2-36之间。省略radix参数时,按十进制进行转换 |
Number对象的属性实际上是一组常量,这组常量属于Number对象本身,而不是属于Number对象的示例。引用这些常量时,直接使用Number,而不是Number对象的实例名称,例如:
var num1 = Number.MAX_VALUE; //正确写法
num1.Number.MAX_VALUE; //错误写法
Number对象的方法操作该对象的示例。例如,当需要办一个整数显示为不同进制表示的数值时,可以使用toString()
方法操作该整数。
应用举例
下面的例子说明Number对象的使用过程。
最大数值和最小数值
JavaScript的最大数值和最小数值
JavaScript可表示的最大数值为:{#maxnums}
JavaScript可表示的最小数值为:{#minnums}
var maxnums = Number.MAX_VALUE; //JavaScript可表示的最大数值
var minnums = Number.MIN_VALUE; //JavaScript可表示的最小数值
进制转换
使用toString()
方法可以非常方便的进行数值的转换,看下面的例子。
请输入一个整数:
转换为二进制转换为八进制转换为十六进制转换为二十五进制
JavaScript的最大数值和最小数值
数值到字符串的各种转换
JavaScript的最大数值和最小数值
{#n}
{#tofixed2}
{#tofixed6}
{#nz}
{#nz_4}
{#nl}
{#n10_2}
{#n10_5}
{#n10_8}
{#int5_5}
var n = new Number(Math.PI); //未格式化的π值
var n10 = 10000 * n; //π的1万倍的值
var int5 = 5; //数值5
var int5_5 = int5.toPrecision(5); //数字5的精度表示,5位有效数字
var tofixed2 = n.toFixed(2); //取小数点后两位数字的π值
var tofixed6 = n.toFixed(6); //取小数点后6为数字的π值
var nz = n10.toExponential(); //π的1万倍的指数表示法
var nz_4 = n10.toExponential(4); //π的1万倍的指数表示法,取小数点后4位
var nl = n10.toLocaleString(); //π的1万倍的本地表示
var n10_2 = n10.toPrecision(2); //π的1万倍的精度表示,2位有效数字
var n10_5 = n10.toPrecision(5); //π的1万倍的精度表示,5位有效数字
var n10_8 = n10.toPrecision(8); //π的1万倍的精度表示,8位有效数字