目录
1.什么是Number对象
Number
构造函数包含用于处理数字的常量和方法。其他类型的值可以使用该Number()
函数转换为数字。Number
是一个原始包装对象,用于表示和操作像37
or之类的数字-9.25
。Number
也可以用字面形式表示,如0b101
, 0o13
, 0x0A。
2.如何创建Number对象
字面量法
123 // one-hundred twenty-three
123.0 // same
123 === 123.0 // true
函数语法
Number('123') // returns the number 123
Number('123') === 123 // true
Number("unicorn") // NaN
Number(undefined) // NaN
3.Number常用方法
isNaN()
Number.isNaN()
方法确定传递的值是否为NaN,其类型是否为Number。它是原始 global 的更强大版本isNaN。
function typeOfNaN(x) {
if (Number.isNaN(x)) {
return 'Number NaN';
}
if (isNaN(x)) {
return 'NaN';
}
}
console.log(typeOfNaN('100F'));
// 输出: "NaN"
console.log(typeOfNaN(NaN));
// 输出: "Number NaN"
parseFloat()
该Number.parseFloat()
方法解析一个参数并返回一个浮点数。如果无法从参数中解析出数字,则返回NaN
function circumference(r) {
if (Number.isNaN(Number.parseFloat(r))) {
return 0;
}
return parseFloat(r) * 2.0 * Math.PI ;
}
console.log(circumference('4.567abcdefgh'));
// 输出: 28.695307297889173
console.log(circumference('abcdefgh'));
// 输出: 0
parseInt()
该Number.parseInt()
方法解析字符串参数并返回指定基数或基数的整数。
function roughScale(x, base) {
const parsed = Number.parseInt(x, base);
if (Number.isNaN(parsed)) {
return 0;
}
return parsed * 100;
}
console.log(roughScale(' 0xF', 16));
// 输出: 1500
console.log(roughScale('321', 2));
// 输出: 0
toFixed()
该toFixed()
方法使用定点表示法格式化数字。
function financial(x) {
return Number.parseFloat(x).toFixed(2);
}
console.log(financial(123.456));
// 输出: "123.46"
console.log(financial(0.004));
// 输出: "0.00"
console.log(financial('1.23e+5'));
// 输出: "123000.00"
isInteger()
该Number.isInteger()
方法确定传递的值是否为整数。
function fits(x, y) {
if (Number.isInteger(y / x)) {
return 'Fits!';
}
return 'Does NOT fit!';
}
console.log(fits(5, 10));
// 输出: "Fits!"
console.log(fits(5, 11));
// 输出: "Does NOT fit!"
isFinite()
该Number.isFinite()
方法确定传递的值是否为有限数——也就是说,它检查给定值的类型是否为Numbe,并且该数字既不是正数 ,也不是Infinity
负数Infinity
,也不是NaN。
console.log(Number.isFinite(1 / 0));
// 输出: false
console.log(Number.isFinite(10 / 5));
// 输出: true
console.log(Number.isFinite(0 / 0));
// 输出: false
toString()
该toString()
方法返回一个表示指定Number对象的字符串。
function hexColour(c) {
if (c < 256) {
return Math.abs(c).toString(16);
}
return 0;
}
console.log(hexColour(233));
// 输出: "e9"
console.log(hexColour('11'));
// 输出: "b"
isSafeInteger()
该Number.isSafeInteger()
方法确定提供的值是否是一个安全整数。
function warn(x) {
if (Number.isSafeInteger(x)) {
return 'Precision safe.';
}
return 'Precision may be lost!';
}
console.log(warn(Math.pow(2, 53)));
// 输出: "Precision may be lost!"
console.log(warn(Math.pow(2, 53) - 1));
// 输出: "Precision safe."