JavaScript数据类型转换

转换为字符串类型

toString()

toString()函数可以把Number类型,Boolean类型转换成字符串类型,返回转换后的字符串,原值并不会改变

  • 注意点:
    1.null和undefined不能调用这个方法转换
    2.toString()括号内可以接收一个整数,表示需要将Number类型转换为多少进制

String()

由于null和undefined不能调用toString(),所以有了String()
括号内接收需要被转换的数据

  • 注意点:可以将任何类型转换为字符串类型,包括null和undefined

算数运算符

由于上两种方法过于复杂,我们可以使用JavaScript语法糖
利用+""的形式将任意数据类型转换为字符串类型

  • 123 + "" -------> "123" + "" -------> "123"

转换为Number类型

Number()函数

  • 对于字符串:

    • 如果字符串中都是数字, 那么就正常转换
    • 如果字符串中不仅仅有数字, 那么转换为NaN
    • 如果字符串中没有内容""或者" ", 那么就转换为0
  • 对于布尔类型:

    • true转换为1
    • false转换为0
  • 对于null:

    • 转换为0
  • 对于undefined:

    • 转换为NaN
  • 总结:

    • 空字符串/false/null --> 0

    • 不仅仅包含数字的字符串和undefined --> 转换为NaN
      其它的正常转换

利用算数运算符转换

在需要转换的类型前面加上+加号或者-减号即可

  • 注意点:
  • +加号不会改变数据的正负性

  • -减号会改变数据的正负性

    var str1 = "123";
    var str2 = "3.14";
    var flag1 = true;
    var flag2 = false;
    var n = null;
    var u = undefined;

    var res1 = +str1;
    console.log(res1);//123
    console.log(typeof res1);//Number

    var res2 = -str1;
    console.log(res2);//-123
    console.log(typeof res2);//Number

    var res3 = +str2;
    console.log(res3);//3.14

    var res4 = +flag1;
    console.log(res4);//1

    var res5 = +flag2;
    console.log(res5);//0

    var res6 = +n;
    console.log(res6);//0

    var res7 = +u;
    console.log(res7);//NaN

parseInt/parseFloat

  • 通过Number函数或者通过+-运算符转换, 都不能转换复杂的字符串

  • 所以就有第三种转换的方式, 通过parseInt()/parseFloat()函数

    • parseInt: 只能提取整数

    • parseFloat: 可以提取小数

  • 注意点:

    • parseInt/parseFloat , 会从左至右的提取, 一旦被中断后续的就提取不到了

    • 对于parseFloat来说, 只能提取一个点, 第二个点会被中断

转换为Boolean类型

  • 对于字符串而言:

    • 只要不是空字符串(没有任何内容), 都会转换为false
    • 只要字符串中有内容(包含空格/Table), 都会转换为true
  • 对于Number类型而言:

    • 只要不是0都会转换为true, 只有0会转换为false
    • 对于null和undefined而言, 都会转换为false
  • 对于NaN也会转换为false

  • 总结: "" / 0 / null / undefined / NaN --> false

你可能感兴趣的:(JavaScript数据类型转换)