跳到主要内容

类型转换

类型转换-字符串

  • 类型转换指将一种数据类型转换为其他类型将其他类型转换为(字符串、数值和布尔值)

  • 转换为字符串

    1. 调用toString()方法将其他类型转换为字符串
      • 由于null和undefined没有toString()方法,所以这两个东西调用toString()时会报错
    2. 调用String()函数将其他类型转换为字符串
      • 对于拥有toString()方法的值调用String()函数时,实际上就是在调用toString()方法
      • 对于null,则直接转换为 "null"
      • 对于undefined,直接转换为 "undefined"
    let a = 10;
    console.log(typeof a, a); // number 10

    a = a.toString();
    console.log(typeof a, a); // string "10"

    let b = 33;
    b = undefined;
    console.log(typeof b, b); // undefined undefined

    b = String(b);
    console.log(typeof b, b); // string undefined

类型转换-数值

  1. 使用Number()函数来将其他类型转换为数值

    • 转换的情况:
      • 字符串:
        • 如果字符串是一个合法的数字,则会自动转换为对应的数字
        • 如果字符串不是合法数字,则转换为NaN
        • 如果字符串是空串或纯空格的字符串,则转换为0
      • 布尔值:
        • true转换为1,false转换为0
      • null 转换为 0
      • undefined 转换为 NaN
  2. 专门来将字符串转换为数值的两个方法

    • parseInt() 将一个字符串转换为一个整数,解析一个字符串并返回指定基数的十进制整数
      • 如果参数不是一个字符串,则将其转换为字符串 (使用 ToString抽象操作)。字符串开头的空白符将会被忽略。
      • 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的整数
    • parseFloat() 将一个字符串转换为浮点数
      • 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的小数
    let a = "123";
    console.log(typeof a, a); // string "123"

    a = Number(a);
    console.log(typeof a, a); // number 123

    let b = "12.45c456";
    console.log(typeof b, b); // string "12.45c456"

    c = parseInt(b);
    d = parseFloat(b);
    console.log(typeof c, c); // number 12
    console.log(typeof d, d); // number 12.45

类型转换-布尔值

  • 使用Boolean()函数来将其他类型转换为布尔值
    • 转换的情况:
      • 数字:
        • 0 和 NaN 转换为false
        • 其余是true
      • 字符串:
        • 空串 转换为 false
        • 其余是true
      • null和undefined 都转换为false
      • 对象:对象都会转换为true
    • 所有标识空性的没有的错误的都会转换为false:0、NaN、空串、null、undefined、false

总结

  • 转换为字符串
    • 显示转换
      • toString()
      • String()
    • 隐式转换
      • + ""
  • 转换为数值
    • 显示转换
      • Number()
      • parseInt()
      • parseFloat()
    • 隐式转换
      • +
  • 转换为布尔值
    • 显示转换
      • Boolean()
    • 隐式转换
      • !!