JavaScript中Number 对象,是数字对象,包含js中的整数、浮点数等等,Number 对象是基本包装类型,定义时可以使用字面量直接赋值即可,调用其属性和方法时解析器会将其临时转化为Number对象。
静态属性
和上一节的Object对象一样,我们先来说Number对象的自有属性。可以通过Object.getOwnPropertyNames(Number)查看Number对象的静态属性。
ES6常量
ES6中引入了下列常量:
- Number.MAX_VALUE :表示JS中最大的数字
- Number.MIN_VALUE :表示JS中最小的数字
- Number.NaN :返回NaN
表示非数字值,与任意其他数字不等,也包括NaN本身。应使用Number.isNaN() 来进行判断。 - Number.NEGATIVE_INFINITY :返回 -Infinity ,表示负无穷。
- Number.POSITIVE_INFINITY :返回 Infinity ,表示正无穷。
静态方法
方法 | 参数 | 返回值 | 说明 |
---|---|---|---|
Number.isInteger() | 任意类型 | 布尔值 | es6新增 ,判断参数是否为整数 |
Number.isNaN() | 任意类型 | 布尔值 | es6新增 ,判断参数是否为NaN |
Number.parseFloat() | 数值或者纯数字的字符串 | es6新增 , 整数或浮点数数值 | 把参数转换为浮点数 |
Number.parseInt() | 数值或者纯数字的字符串 | es6新增 ,整数数值 | 把参数转换为整数 |
Number.isFinite() | 数值 | 布尔值 | es6新增 ,检查一个数值是否为有限的(finite) |
//1 Number.isInteger()
Number.isInteger(1); // true
Number.isInteger(1.1); //false
Number.isInteger('1'); // false 纯整数的字符串也返回false
//2 Number.isNaN()
Number.isNaN(NaN); // true
Number.isNaN('NaN'); // false 'NaN'字符串,并不为NaN
Number.isNaN(null); // false
//在ES6中将parseInt()和parseFloat()都移植到Number对象上去,方法的行为保持不变。
//3 Number.parseFloat()
Number.parseFloat(1); // 1 ,整数还是返回整数
Number.parseFloat(1.1); // 1.1
Number.parseFloat('1.1a'); //1.1 ,字符串前面为数值的,只返回数值
Number.parseFloat('a1'); // NaN ,非数值开头,返回NaN
//4 Number.parseInt()
Number.parseInt(1); // 1
Number.parseInt(1.1); // 1
Number.parseInt('1.1a'); // 1
Number.parseInt('a1'); // NaN
实例方法
1 toExponential(value) :将一个数字转为指数类型,参数表示小数点后的位数
2 toFixed(value) :将一个数字转换为指定小数位数的字符串。不传入参数,就是没小数位。返回值为四舍五入
3 toString() :使用指定的进制,将一个数字转换为字符串。不传入参数,默认为十进制。
(1000).toExponential() //1e+3
(1000).toExponential(2) //1.00e+3
(1).toFixed(2) //1.00
(1.367).toFixed(2) //1.37
(1).toString() //"1"
(10).toString(2) //"1010"
(10).toString(16) //"a"
注意
1、浮点数的加减乘除异常
Js中的2个浮点数进行加减乘除运算,有时会返回异常的数值,可以借助toFixed()方法,指定小数位进行计算。
2 减法运算
Js中进行减法运算时,会先把前后的值转换为数值再进行运算。若转换失败,返回NaN
附加知识
ES6新增了二进制、八进制的字面量表示法
- 二进制数字的字面量表示是在数值前加‘0b’;
- 八进制数字的字面量表示是在数值前加‘0o’,
- 十六进制数字的字面量表示是在数值前加‘0x’
Number(0b11111100011) //2019
Number(0o3743) //2019
Number(0x7E3) //2019