类型声明
var a = 10; //整数
var a = 1.2; //小数
创建对象
var num = new Number(value) //构造函数
var num = Number(value) //转换函数
参数
value
:要创建的Number
对象的数值,或是要转换成数字的值
返回值
1.当Number()
和运算符new
一起作为构造函数使用时,它返回一个新创建的Number
对象
2.如果不用new
运算符,把Number()
作为一个函数来调用,它将把自己的参数转换成一个原始的数值,并且返回这个值(如果转换失败,这返回NaN
)
转为数字类型的方式
var a = '100.05'
//①将字符串转为数字
var n = a*1
//②将字符串转为整数
var n = parselnt(a)
//③将字符串转为数字
var n = +a
属性
constructor
:返回对创建此对象的Number函数的引用
var num = 123
var con = num.constructor //function Number(){[native code]}
prototype
:允许向对象添加属性和方法
var num = 123
num.prototype.name = 'abc'
num.prototype.run = function(){}
MAX_VALUE
:最大的数
var num = Number.MAX_VALUE //1.7976931348623157e+308
MIN_VALUE
:最小的数
var num = Number.MIN_VALUE //5e-324
NaN
:非数字值
var num = Number.Nan //NaN
NEGATIVE_INFINITY
:负无穷大,溢出时返回该值
var num = Number.NEGATIVE_INFINITY //-Infinity
POSTIVE_INFINITY
:正无穷大,溢出时返回该值
var num = Number.NEGATIVE_INFINITY //Infinity
EPSILON
:表示 1 和比最接近 1 且大于 1 的最小 Number 之间的差别
var num = Number.EPSILON //2.220446049250313e-16
MIN_SAFE_INTEGER
:在 JavaScript中最小的安全的 integer 型数字
var num = Number.MIN_SAFE_INTEGER //-9007199254740991
MAX_SAFE_INTEGER
:在 JavaScript 中最大的安全整数
var num = Number.MAX_SAFE_INTEGER //9007199254740991
方法
toString()
:把数字转换为字符串,使用指定的基数
语法
NumberObject.toString(radix)
参数
radix
:可选。规定表示数字的基数,使2~36之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则ECMAScript标准允许实现返回任意值
返回值
数字的字符串表示。
注意
var num = 123
var num = num.toString() //123
var num = num.toString(2) //1111011
valueOf()
:返回一个Number
对象的基本数字值
语法
NumberObject.valueOf()
返回值
NumberObject
的原始数值
注意
var num = 123
var num = num.valueOf() //123
toFixed()
:把数字转换为字符串,结果的小数点后有指定位数的数字
语法
NumberObject.toFixed(num)
参数
num
:必需。规定小数的位数,是0~20之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替
返回值
返回NumberObject
的字符串表示,不采用指数计数法,小数点后有固定的num
位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果num
大于 le+21,则该方法只调用NumberObject.toString()
,返回采用指数计数法表示的字符串
注意
1.当num
太小或太大时抛出异常RangeError
。0 ~ 20 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值
2.当调用该方法的对象不是Number
时抛出TypeError
异常
var num = 123
var num = num.toFixed(2) //123.00
var num = num.toFixed(5) //123.00000
toLocaleString()
:把数字转换为字符串,使用本地数字格式顺序
语法
NumberObject.toLocaleString()
返回值
数字的字符串表示,由实现决定,根据本地规范进行格式化,可能影响到小数点或千分位分隔符采用的标点符号
注意
var num = 123
var num = num.toLocaleString() //123
toExponential()
:把对象的值转换为指数计数法
语法
NumberObject.toExponential(num)
参数
num
:必需。规定小数的位数,是0~20之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将使用尽可能多的数字
返回值
返回NumberObject
的字符串表示,采用指数计数法,即小数点之前有一位数字,小数点之后有num
位数字。该数字的小数部分将被舍入,必要时用 0 补足,以便它达到指定的长度
注意
1.当num
太小或太大时抛出异常RangeError
。0 ~ 20 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值
2.当调用该方法的对象不是Number
时抛出TypeError
异常
var num = 123
var num = num.toExponential(0) //1e+2
var num = num.toExponential(5) //1.23000e+2
var num = num.toExponential(20) //1.23000000000000000000e+2
toPrecision()
:把数字格式化为指定的长度
语法
NumberObject.toPrecision(num)
参数
num
:规定必须被转换为指数计数法的最小位数。该参数是 1 ~ 21 之间(且包括 1 和 21)的值。有效实现允许有选择地支持更大或更小的num
。如果省略了该参数,则调用方法 toString()
,而不是把数字转换成十进制的值
返回值
返回NumberObject
的字符串表示,包含num
个有效数字。如果num
足够大,能够包括NumberObject
整数部分的所有数字,那么返回的字符串将采用定点计数法。否则,采用指数计数法,即小数点前有一位数字,小数点后有num-1
位数字。必要时,该数字会被舍入或用 0 补足
注意
1.当num
太小或太大时抛出异常RangeError
。1 ~ 21 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值
2.当调用该方法的对象不是Number
时抛出TypeError
异常
var num = 123
var num = num.toPrecision(1) //1e+2
var num = num.toPrecision(5) //123.00
var num = num.toprecision(21) //123.000000000000000000
Number.isFinite()
:检测指定参数是否为无穷大
语法
const bool = Number.isFinite(value)
参数
value
:必需。要检测的值
返回值
如果是有限数字返回true
,否则返回false
const bool = Number.isFinite(123) //true
const bool = Number.isFinite('2020/12/12') //false
const bool = Number.isFinite(Infinity) //false
Number.isInteger()
:判断指定的参数是否为整数
语法
const bool = Number.isInteger(value)
参数
value
:必需。要检测的值
返回值
如果是有限数字返回true
,否则返回false
const bool = Number.isInteger(123) //true
const bool = Number.isInteger(12.25) //false
Number.isSafeInteger()
:判断传入的参数值是否是一个“安全整数”,安全整数范围为 -(2<sup>53</sup> - 1)到
2<sup>53</sup> - 1
之间的整数,包含 -(2<sup>53</sup> - 1)和
2<sup>53</sup> - 1
语法
const bool = Number.isSafeInteger(value)
参数
value
:必需。要检测的值
返回值
如果是有限数字返回true
,否则返回false
const bool = Number.isSafeInteger(10) //true
const bool = Number.isSafeInteger(12345678901234567890) //false