Number 对象的内置函数
·
Yin灏
转换为特定进制的数码字符串
// 判断数值是否为有限的数值
console.log(Number.isFinite(32000)); // true
// 字符串并没有转化为数值
console.log(Number.isFinite('32000')); // false
var value = 32000;
console.log(value.toString(2)); // 111110100000000
console.log(value.toString(4)); // 13310000
console.log(value.toString(8)); // 76400
console.log(value.toString(16)); // 7d00
console.log('')
value = 0b10111100;
console.log(value.toString(4))
console.log(value.toString(8))
console.log(value.toString(10))
console.log(value.toString(16))
console.log('')
value = 0o2375;
console.log(value.toString(2))
console.log(value.toString(4))
console.log(value.toString(10))
console.log(value.toString(16))
value = 0xf25c;
console.log(value.toString(2))
console.log(value.toString(4))
console.log(value.toString(8))
console.log(value.toString(10))
处理小数格式
.toExponential()
:小数位数.toFixed()
:小数位数.toPrecision()
:整数和小数的总位数
let result = Math.PI * (100 ** 2);
console.log(result); // 31415.926535897932
console.log('')
console.log(result.toExponential()); // 3.1415926535897932e+4
console.log(result.toExponential(4)); // 3.1416e+4
console.log(result.toExponential(3)); // 3.142e+4
console.log(result.toExponential(2)); // 3.14e+4
console.log('')
console.log(result.toFixed()); // 31416
console.log(result.toFixed(4)); // 31415.9265
console.log(result.toFixed(3)); // 31415.927
console.log(result.toFixed(2)); // 31415.93
console.log('')
console.log(result.toPrecision()); // 31415.926535897932
console.log(result.toPrecision(4)); // 3.142e+4
console.log(result.toPrecision(3)); // 3.14e+4
console.log(result.toPrecision(2)); // 3.1e+4
console.log('')
var value = 55.8175;
console.log(value.toPrecision()); // 55.8175
console.log(value.toPrecision(4)); // 55.82
console.log(value.toPrecision(3)); // 55.8
console.log(value.toPrecision(2)); // 56
转换为数值
let num_obj = new Number(3591.8);
console.log(num_obj); // Number {3591.8}
num_obj.second = 5201.53
num_obj.third = 23.3
console.log(num_obj)
console.log(typeof num_obj) // object
console.log('')
console.log(num_obj.valueOf())// 3591.8
console.log(typeof num_obj.valueOf()) // 'number'
console.log('')
console.log(num_obj.second)// 5201.53
console.log(typeof num_obj.second) // 'number'
console.log('')
console.log(num_obj.third)// 23.3
console.log(typeof num_obj.third) // 'number'
console.log('')
let answer = Number('333') == parseInt('333')
console.log(answer) // true
answer = Number('7.7') == parseFloat('7.7')
console.log(answer) // true
console.log(Number('0b11011')) // 27 Number 将 2 进制转化为 10 进制
console.log(parseInt('0b11011')) // 0 parseInt 无法将 2 进制转化为 10 进制
console.log(Number('0o1557')) // 897
console.log(parseInt('0o1557')) // 0 parseInt 无法将 8 进制转化为 10 进制
// 都可以将 16 进制转换为 10 进制
console.log(Number('0xffcc')) // 65484
console.log(parseInt('0xffcc')) // 65484
console.log(Number('1314love')) // NaN 无法将字符串转化为数值
console.log(parseInt('1314love')) // 1314 可以将字符串转化为数值
判断是否为整数或有限数
- 通过
Number
对象的isInteger()
可以判断传入的数据是否为整数 isFinite()
判断传入的数据是否为有限数
console.log(Number.isInteger(Number.MAX_VALUE)) // true
console.log(Number.isInteger(Number.MIN_VALUE)) // false
console.log(Number.isInteger(Math.PI)) // false
console.log(Number.isInteger('777')) // false
console.log(Number.isInteger(777)) // true
console.log('')
console.log(Number.isInteger(true)) // false
console.log(Number.isInteger(false)) // false
console.log('')
console.log(Number.isInteger(NaN)) // false
console.log(Number.isInteger(Infinity)) // false
console.log('')
// 判断是否为有限数
console.log(isFinite(Infinity)) // false
console.log(isFinite(-Infinity)) // false
console.log(isFinite(NaN)) // false
console.log('')
console.log(isFinite(Number.MAX_VALUE)) // true
console.log(isFinite(undefined)) // falsee
console.log(isFinite(true)) // true
console.log(isFinite(false)) // true
console.log(isFinite(null)) // true