ECMAScript/ES6 Number对象
ES6 Number对象具有执行日期,浮点数,整数等数字功能的几种方法和属性。使用ES6中可以使用Number
对象来实现数字的操作。 这是因为浏览器会自动将数字文字转换为Number
类的实例。
使用Number()
构造函数创建Number
对象。 Number
对象的一些主要用途包括NaN
,当参数无法转换为数字时将返回:NaN
。
语法
var num = new Number(number_value);
参数说明:
number_value
:这是要创建的对象的数值。如果提供非数字参数,则它将返回NaN
,因为相应的参数无法转换为数字。
1.Number属性
下面来看看ES6中引入的Number对象的一些属性:
语法 | 属性 | 说明 |
---|---|---|
1. | Number.EPSILON |
定义两个可表示数字之间的最小间隔。 |
2. | Number.MAX_SAFE_INTEGER |
它定义JavaScript(253-1)中的最大安全整数 |
3. | Number.MAX_VALUE |
它定义了最大的可表示数字。 |
4. | Number.MIN_SAFE_INTEGER |
它定义JavaScript(-(253-1))中的最小安全整数。 |
5. | Number.MIN_VALUE |
定义最小的正数,最接近零。 |
6. | Number.Nan |
定义“非数字”值。 |
7. | Number.NEGATIVE_INFINITY |
它定义一个值,该值小于定义的数字。 |
8. | Number.POSITIVE_INFINITY |
它定义一个值,该值大于定义的数字。 |
9. | Number.prototype |
它定义一个表示无穷大的特殊值。 |
下面详细地介绍ES6中引入的Number
属性。
1.1.EPSILON
该属性表示1
与最小浮点数之间的差,该差大于1
。不需要创建Number
对象就可以直接访问静态属性,可以简单地使用Number.EPSILON
属性。
示例代码
var value = Number.EPSILON;
console.log(value);
运行结果如下:
2.220446049250313e-16
1.2.Number.MAX_SAFE_INTEGER
此属性表示JavaScript(25^3-1)中的最大安全整数。
示例代码
var value = Number.MAX_SAFE_INTEGER;
console.log(value);
运行结果如下:
9007199254740991
1.3.Number.MAX_VALUE
此属性属于静态Number
对象,并表示可能的最大正数的常量。
示例代码
var val = Number.MAX_VALUE;
console.log("Number.MAX_VALUE equals to: " + val );
运行结果如下:
Number.MAX_VALUE equals to: 1.7976931348623157e+308
1.4.Number.MIN_SAFE_INTEGER
它表示JavaScript(-(253-1)
)中的最小安全整数。
示例代码
var val = Number.MIN_SAFE_INTEGER;
console.log("Number. MIN_SAFE_INTEGER equals to: " + val );
运行结果:
Number. MIN_SAFE_INTEGER equals to: -9007199254740991
1.5.Number.MIN_VALUE
它代表最小的正数值。
示例代码
var val = Number.MIN_VALUE;
console.log("Number.MIN_VALUE equals to : " + val );
运行结果如下:
Number.MIN_VALUE equals to : 5e-324
2.Number方法
Number
对象仅包含属于每个对象定义的一部分的默认方法。 Number
对象的方法如下:
序号 | 方法 | 说明 |
---|---|---|
1. | Number.isNan() | 返回所传递的值是否为NaN。 |
2. | Number.isFinite() | 返回所传递的值是否为有限数字。 |
3. | Number.isInteger() | 返回所传递的值是否为整数。 |
4. | Number.isSafeInteger() | 确定传递的值是否为安全整数(范围为-(253-1)和(253-1)之间)。 |
5. | Number.parseFloat() | 等效于全局对象的parseFloat()。 |
6. | Numbr.pareInt() | 等效于全局对象的parseInt()。 |
下面将详细介绍ES6中引入的上述Number方法。
2.1.Number.isNan()
它确定值是否为Nan
。 如果值不是数字则返回true
。
var res = Number.isNaN(NaN);
console.log(res);
var res1 = Number.isNaN('Nan');
console.log(res1);
var res2 = Number.isNaN(123);
console.log(res2);
运行结果如下:
true
false
false
2.2.Number.isFinite()
它确定一个值是否为有限数。 如果该值是Number
类型且等于有限数字,则返回true
。 否则返回false
。
示例
var res = Number.isFinite(Infinity);
console.log(res);
var res1 = Number.isFinite(123);
console.log(res1);
var res2 = Number.isFinite('Infinity');
console.log(res2);
运行结果如下:
false
true
false
2.3.Number.isInteger()
它确定传递的值是否为整数。 如果该值为数字且必须为整数(不带小数的数字),则返回true
。 否则返回false
。
示例
var res = Number.isInteger(-100);
console.log(res);
var res1 = Number.isInteger(100);
console.log(res1);
var res2 = Number.isInteger(1.001);
console.log(res2);
运行结果如下:
true
true
false
2.4.Number.isSafeInteger()
安全整数是在-(25^3-1)
和(25^3-1)
范围内的整数。 Number.isSafeInteger()
方法确定该值是否为安全整数。
示例代码
var res = Number.isSafeInteger(-100);
console.log(res);
var res1 = Number.isSafeInteger(100.9);
console.log(res1);
var res2 = Number.isSafeInteger(-100);
console.log(res2);
var res3 = Number.isSafeInteger(Math.pow(2,53));
console.log(res3);
运行结果如下:
true
false
true
true
3.二进制,八进制和十六进制文字
ES6增加了对二进制文字的支持,并更改了表示文字的方式。下面来看看ES6中文字的表示形式。
3.1.二进制文字表示
ES6中的二进制文字使用0b
前缀表示,后跟二进制数字序列,分别为:0
和1
。前缀可以大写或小写。 但是,建议将小写字母用作前缀。
示例
console.log(0b010)
console.log(0b110)
console.log(0b101)
console.log(0B100)
运行结果如下:
2
6
5
4
3.2.八进制文字表示
ES6中的八进制文字使用0o
前缀表示,后跟八进制数字的序列(从0
到7
)。不能在八进制文字中包含超出范围(0
到7
)的数字或数字组合。
示例代码
console.log(0o34)
console.log(0o1007)
console.log(0o571234)
运行结果如下:
28
519
193180
3.3.十六进制字面量表示
ES6中的十六进制文字使用0x
前缀表示。
示例
console.log(0x678)
console.log(0x100)
console.log(0x788)
运行结果如下:
1656
256
1928