JavaScript—数据类型(Number)

277 阅读6分钟

类型声明

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标准允许实现返回任意值

返回值

数字的字符串表示。

注意

当调用该方法的对象不是`Number`时抛出`TypeError`异常
var num = 123
var num = num.toString()         //123
var num = num.toString(2)        //1111011

valueOf():返回一个Number对象的基本数字值

语法

NumberObject.valueOf()

返回值

NumberObject的原始数值

注意

当调用该方法的对象不是`Number`时抛出`TypeError`异常
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()

返回值

数字的字符串表示,由实现决定,根据本地规范进行格式化,可能影响到小数点或千分位分隔符采用的标点符号

注意

当调用该方法的对象不是`Number`时抛出`TypeError`异常
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