灏天阁

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

- Book Lists -