美文网首页
JavaScript基础03- 数据类型转换

JavaScript基础03- 数据类型转换

作者: 释梦石 | 来源:发表于2020-08-24 06:56 被阅读0次

    数据类型转换

    所谓的数据类型转换,就是将一种数据类型转换为另一种数据类型,所以,数据类型转换包括,转换为字符串类型,转换为数字型,转换为布尔型。数据类型转换分为显式转换和隐式转换两种方式

    转换成String类型

    字符串拼接"+"
    当 + 两边一个操作符是字符串类型,一个操作符是其它类型的时候,会先把其它类型转换成字符串再进行字符串拼接,返回字符串属于隐式类型转换,实际上是调用的String(),先转换成字符串在拼接。

    var a = 123; // Number 类型
    console.log(a + '字符串'); // 转换成 String 类型
    

    ** 调用toString()**

    //变量.toString();
    var num = 5;
    console.log(num.toString());//num转换成字符串
    ···
    **null 和 undefined 这两个值没有 toString()方法。如果调用,会报错。**
    Number 类型的变量,在调用 toString()时,可以在方法中传递一个整数作为参数。此时它将会把数字转换为指定的进制,如果不指定则默认转换为 10 进制。
    ```js
           var a = 4;
            //对于Number调用toString()时可以在方法中传递一个整数作为参数
            //此时它将会把数字转换为指定的进制,如果不指定则默认转换为10进制
            a = a.toString(2); // 先转换为二进制,转换为string
    
            console.log(a); // 100
            console.log(typeof a); // string
    

    使用String()函数

    String()属于强制类型转换。
    使用方法

    String(变量)
    
    1. 对于 Number 和 Boolean 而言,本质上就是调用 toString()方法。
    2. 但是对于 null 和 undefined,则不会调用 toString()方法。它会将 null 直接转换为 "null"。将 undefined 直接转换为 "undefined",因为他们没有toString()的方法

    转换成Number类型

    使用Number()函数

    Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN

    字符串使用Number();

    1. 如果字符串中是纯数字,则直接将其转换为数字。
    2. 只要字符串中包含了非数字的内容(小数点按数字来算),则转换为 NaN。
    3. 如果字符串是一个空串或者是一个全是空格的字符串,则转换为 0。

    Boolean使用Number()

    1. true 转成1
    2. false 转成 0

    null 使用Number()
    转换成0

    undefined使用Number()
    转换成NaN

    使用 parseInt()函数

    parseInt()的作用是将字符串中的有效的整数内容转为数字。解析第一个字符是数字会解析直到遇到非数字结束

            var a = 10;
            console.log(parseInt(a));//结果为10
            //只保留字符串开头的数字,后面的中文非数字废弃,只保留整数
            var b = "100.89abc"
            console.log(parseInt(b));//结果为100
            //不是以数字开头,转换成NaN
            var c = "abc100";
            console.log(parseInt(c));//NaN
            //如果字符串是一个空串或者是一个全是空格的字符串,转换成NaN
            var d = "   ";
            console.log(parseInt(d));
            //Boolean转换成NaN
            var e = true;
            //null转换成NaN
            var f = null;
            //Undefined转换成NaN
            var g = undefined;
            console.log("boolean:"+parseInt(e)+" null:"+parseInt(f)+" undefined"+parseInt(g));
    

    结果:

    结果
    如果对非 String使用 parseInt()或 parseFloat(),它会先将其转换为 String 然后再操作。

    parseFloat()函数

    可以转换成浮点数,用法与parseInt() 相似。不同在于,他会保留其小数部分。

    其他数据类型转换成Boolean类型

    0 ''(空字符串) null undefined NaN 会转换成false 其它都会转换成true。


    转换成boolean类型

    隐式转换成Boolean的情况:

    1. 当非 Boolean 类型的数值和 Boolean类型的数值做比较时,会先把前者进行隐式转换为 Boolean类型,然后再做比较。
    2. 使用 !!可以显式转换为 Boolean 类型。比如 !!1的结果是true。
    3. 调用isNaN() ,返回结果为boolean类型。任何不能被转换为数值的参数,都会让这个函数返回 true。

    常见的隐式类型转换

    自增/自减运算符:++、—-

    执行过程:

    1. 先调用Number(参数)函数;
    2. 然后将Number(参数)的返回结果进行 加 1 操作。返回结果为Number类型。

    正号/负号:+a、-a
    任何值做+a、-a、/a运算时,运算结果都会自动转换为 Number 类型。 内部调用的是 Number() 函数。

    + 号

    1. 当加号的两边,只要有一个是字符串的时候,就会调用 String() 函数将数字转为字符串,然后再计算。导致最终的运算结果是字符串。
    2. Boolean 型和数字型相加时, true 按 1 来算 ,false 按 0 来算。这里其实是先调 Number() 函数,将 Boolean 类型转换为 Number类型,然后再和 数字相加。
    3. null + 数字等价于:0 + 数字
    4. undefined + 数字计算结果:NaN

    相关文章

      网友评论

          本文标题:JavaScript基础03- 数据类型转换

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