Number 类型表示整数和浮点值(在某些语言中也叫双精度值)。
NaN
NaN 不等于任何值,包括 NaN 。
console.log(NaN == NaN); // false
数值转换
将非数值转换为数值:Number()、parseInt()和 parseFloat()。
Number()是转型函数,可用于任何数据类型。后两个函数主要用于将字符串转换为数值。
Number()函数转换
- 布尔值,true 为 1,false为 0。
- 数值,直接返回。
- null,返回 0。
- undefined,返回 NaN。
- 字符串:
- 只包含数值字符(包括加、减),则转换为十进制。
- 为浮点值如”1.1”,则转换为浮点值(忽略前面的0)。
- 为十六进制如”0xf”,则转换为对应的十进制。
- 是空字符串,则返回 0。
- 其他情况,为NaN。
parseInt()函数
- 取整数时优先使用 parseInt()函数。
- 忽略开头空格。
仅识别数值,碰到非数值则输出。
“1234blue”转换为 1234,”blue”被忽略。
“22.5”转换为 22,小数点不是整数字符。进制转换
parseInt()第二个参数,用于指定底数(进制数)
let num1 = parseInt("10", 2); // 2,按二进制解析
let num2 = parseInt("10", 8); // 8,按八进制解析
let num3 = parseInt("10", 10); // 10,按十进制解析
let num4 = parseInt("10", 16); // 16,按十六进制解析
parseFloat()函数
忽略开头的零。
- 识别所有浮点格式。仅第一个小数点有效。如”22.34.5”将转换成 22.34。
- 识别十进制格式。