Number 类型表示整数和浮点值(在某些语言中也叫双精度值)。

NaN

NaN 不等于任何值,包括 NaN 。
console.log(NaN == NaN); // false

数值转换

将非数值转换为数值:Number()、parseInt()和 parseFloat()。
Number()是转型函数,可用于任何数据类型。后两个函数主要用于将字符串转换为数值。

Number()函数转换

  1. 布尔值,true 为 1,false为 0。
  2. 数值,直接返回。
  3. null,返回 0。
  4. undefined,返回 NaN。
  5. 字符串:
  • 只包含数值字符(包括加、减),则转换为十进制。
  • 为浮点值如”1.1”,则转换为浮点值(忽略前面的0)。
  • 为十六进制如”0xf”,则转换为对应的十进制。
  • 是空字符串,则返回 0。
  • 其他情况,为NaN。

    parseInt()函数

  1. 取整数时优先使用 parseInt()函数。
  2. 忽略开头空格。
  3. 仅识别数值,碰到非数值则输出。

    “1234blue”转换为 1234,”blue”被忽略。
    “22.5”转换为 22,小数点不是整数字符。

    进制转换

    parseInt()第二个参数,用于指定底数(进制数)

    1. let num1 = parseInt("10", 2); // 2,按二进制解析
    2. let num2 = parseInt("10", 8); // 8,按八进制解析
    3. let num3 = parseInt("10", 10); // 10,按十进制解析
    4. let num4 = parseInt("10", 16); // 16,按十六进制解析

    parseFloat()函数

  4. 忽略开头的零。

  5. 识别所有浮点格式。仅第一个小数点有效。如”22.34.5”将转换成 22.34。
  6. 识别十进制格式。