(1)判断是否为整数:isInteger()
(2)将字符串转换为整数:parseInt()
(3)将字符串转换为浮点数:parseFloat()
(4)四舍五入:toFixed()
console.log(Number.isInteger(123)); // true
console.log(Number.isInteger(123.123)); // false
console.log(parseInt('123')); // 123
console.log(parseInt('123.123')); // 123
console.log(parseInt('123aaa')); // 123
console.log(parseInt(' 123aaa')); // 123
console.log(parseInt('aaa123aaa')); // NaN
console.log(parseInt('123.123aaaaaa')); // 123
console.log(parseInt(' 123.123aaaaaa')); // 123
console.log(parseInt('aaaaa123.123aaaaaa')); // NaN
console.log(parseFloat('123')); // 123
console.log(parseFloat('123.123')); // 123.123
let intNum = 123;
let floatNum = 123.123;
let strIntNum = '123';
console.log(intNum.toFixed(2)); // 123.00
console.log(floatNum.toFixed(2)); // 123.12
console.log(strIntNum.toFixed(2));
// Uncaught TypeError: strIntNum.toFixed is not a function
(5)NaN:Not a number。此类型不能用 == 进行判断,需用如下方法:
let str = '123aaa';
console.log(Number.isNaN(parseInt('aaa123aaa'))); // true
console.log(Number.isNaN('aaa123aaa')) // false
console.log(Object.is(parseInt('aaa123'), NaN)); // true
console.log(Object.is('aaa123', NaN)); // false
NaN 是将其他非 Number 类型尝试转换为 Number 时失败所得到的。若不进行转换操作,则用以上方法判断会返回 false ,因为它们转换前确实不是 NaN 。
(6)类型转换:上面几种方法中 parseInt() 和 parseFloat() 都有将非 Number 类型转换为 Number 类型的能力,除此之外,还可以使用 Number() 函数进行转换。
console.log(Number('123')); // 123
console.log(Number('123.123')); // 123.123
console.log(Number('123aaa')); // NaN
console.log(Number(' 123 ')); // 123
console.log(Number('aaa123')); // NaN
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number([])); // 0
console.log(Number([123])); // 123
console.log(Number([123, 456])); // NaN
console.log(Number(['123'])); // 123
console.log(Number(['123', '456'])); // NaN
console.log(Number({})); //