美文网首页
变量及强制类型转换

变量及强制类型转换

作者: 向着远方奔跑 | 来源:发表于2019-06-12 08:28 被阅读0次
    • 在变量中加入字符串进行拼接,可以被同化为字符串
      举例1:
        var a = "1";
        var b = 2;
        console.log(a + b);
    

    控制台输出:
    12
    举例2:

        var a = 1;
        var b = 2;
        console.log("a" + b);   //"a"就不是变量了!所以就是"a"+2 输出a2
    

    控制台输出:
    a2

    • - 、* 、/ 、%这几个符号会自动进行隐式转换
      例如:
        var a = "4" + 3 - 6;
        console.log(a);
    

    输出结果:
    37(43-6)

    • null 和 undefined
      任何数据类型和undefined运算都是NaN(not a number);
      任何值和null运算,null可看做0运算。
    • prompt()就是专门用来弹出能够让用户输入的对话框。重要的是:用户不管输入什么,都是字符串。

    数据类型转换

    转为字符串类型

    • 变量+"";
    • 调用toString()方法;
    • 使用String()函数。(String(变量))

    转为数字类型

    使用Number()函数
    string 转 number

    1、如果字符串中是纯数字,则直接转为数字;
    2、如果字符串中有非数字内容,则转为 NaN;
    3、如果字符串是一个空串或者是一个全是空格的字符串,则转换为0。

    Boolean 转 number
    • true 转为 1
    • false 转为 0
    null 转 number
    • 结果为 0
    undefined 转 number
    • 结果为 NaN
    parseInt():字符串 -> 整数【重要】

    parseInt()是专门用来对付字符串的。

    parseInt()的作用是将字符串中的有效的整数内容转为数字
    例如:

    parseInt("5"); //输出结果为数字 5
    

    parseInt 具有以下特性:

    • 只保留字符串最开头的数字,后面的中文自动消失
    console.log(parseInt("2017在公众号上写了6篇文章"));  //打印结果:2017
    
    console.log(parseInt("2017.01在公众号上写了6篇文章"));  //打印结果仍是:2017   (说明只会取整数)
    
    console.log(parseInt("aaa2017.01在公众号上写了6篇文章"));  //打印结果:NaN
    
    • 自动带有截断小数的功能:取整,不四舍五入。
    var a = parseInt(5.8) + parseInt(4.7);
    console.log(a);    //结果为 9
    
    var a = parseInt(5.8 + 4.7);
    console.log(a);   //结果为 10
    
    • 如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后再操作。
    var a = true;
    console.log(parseInt(a));  //打印结果:NaN (因为是先将a转为字符串"true",然后然后再操作)
    
    var b = null;
    console.log(parseInt(b));  //打印结果:NaN  (因为是先将b转为字符串"null",然后然后再操作)
    
    var c = undefined;
    console.log(parseInt(c));  //打印结果:NaN  (因为是先将b转为字符串"undefined",然后然后再操作)
    
    var d = 168.23;
    console.log(parseInt(d));  //打印结果:168  (因为是先将c转为字符串"168.23",然后然后再操作)
    

    转为 Boolean

    将其他的数据类型转换为Boolean,可以使用Boolean()函数。

    • 数字 --> 布尔。除了0和NaN,其余的都是true。

    • 字符串 ---> 布尔。除了空串,其余的都是true。

    • null和undefined都会转换为false。

    • 对象也会转换为true。

    其他进制的数字转换

    -16进制的数字,以0x开头

    • 8进制的数字,以0开头

    • 2进制的数字,0b开头(不是所有的浏览器都支持:chrome和火狐支持,IE不支持)

    比如070这个字符串,如果我调用parseInt()转成数字时,有些浏览器会当成8进制解析,有些会当成10进制解析。

    所以,比较建议的做法是:可以在parseInt()中传递第二个参数,来指定数字的进制。例如:

    a = "070";
    a = parseInt(a,10); //转换成十进制
    

    相关文章

      网友评论

          本文标题:变量及强制类型转换

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