美文网首页
JavaScript数据类型转换

JavaScript数据类型转换

作者: AuglyXu | 来源:发表于2018-11-02 13:49 被阅读0次

    转换为字符串类型

    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数据类型转换

          本文链接:https://www.haomeiwen.com/subject/cypqxqtx.html