數據類型轉換方式


強制類型轉換:

1.將變量類型轉換為string類型:

通過toString()方法轉換:

var num = 10;
console.log(typeof num); /*這里打印的結果為number*/
num.toString();
console.log(typeof num); /*這里打印的結果為number*/
console.log(num.toString()); /*這里打印的結果為10*/
console.log(typeof num.toString()); /*這里打印的結果為String*/
num = num.toString(); /*將變量num重新賦值*/
console.log(typeof num); /*這里打印的結果為String*/

分析代碼:

先定義了一個全局變量num並賦值為10,該變量的類型為number。

接着對該變量使用toString()方法,再次檢測該變量的數據類型依舊為number(因為沒有重新賦值)。

然后再對 num.toString() 的結果進行了打印,返回了 “10” ,且檢測其返回結果(10)的類型為String(這證明 toSring() 方法隱式return出了轉換結果,而且需要一個變量進行接收)。

最后使用已定義的num變量接收了num.toSring return出來的結果。

toString() 方法不能對 null 和 undefined 類型進行轉換,會報錯!

通過String()函數轉換:

    var num = 10;
    console.log(typeof num); /*這里打印的結果為number*/
    num = String(num);
    console.log(typeof num); /*這里打印的結果為string*/

通過String()函數也可以將變量類型強制轉換為String類型,同樣需要將其結果賦值給變量。

對 Number和Boolean 類型進行轉換時,實際上它內部調用的是 toString() 方法。

不同的是:String()函數還可以對 null和undefined 類型的變量進行轉換,直接返回字符串 "null" 和 "undefined" !

總結:將變量強制轉換為String類型的方法有:①toString()  ②String()

2.將變量類型轉換為Number類型:

通過Number()函數轉換:

    var num = "10"; /*純數字的字符串*/
    console.log(typeof num); /*這里打印的結果為string*/
    num = Number(num);
    console.log(num); /*這里打印的結果為10*/
    console.log(typeof num); /*這里打印的結果為number*/
    console.log('--------------------------');

    var message = "今年是2021年"; /*非純數字的字符串*/
    console.log(typeof message); /*這里打印的結果為string*/
    message = Number(message);
    console.log(message) /*這里打印的結果為NaN*/
    console.log(typeof message); /*這里打印的結果為number*/
    console.log('--------------------------');

    var a = ""; /*空字符串*/
    console.log(typeof a); /*這里打印的結果為string*/
    a = Number(a);
    console.log(a); /*這里打印的結果為0*/
    console.log(typeof a); /*這里打印的結果為number*/
    console.log('--------------------------');

    var b = true; /*布爾值true*/
    console.log(typeof b); /*這里打印的結果為boolean*/
    b = Number(b);
    console.log(b); /*這里打印的結果為1*/
    console.log(typeof b); /*這里打印的結果為number*/
    console.log('--------------------------');

    var c = false; /*布爾值false*/
    console.log(typeof c); /*這里打印的結果為boolean*/
    c = Number(c);
    console.log(c); /*這里打印的結果為0*/
    console.log(typeof c); /*這里打印的結果為number*/
    console.log('--------------------------');

    var d = null; /*空值null*/
    console.log(typeof d); /*這里打印的結果為object*/
    d = Number(d);
    console.log(d); /*這里打印的結果為0*/
    console.log(typeof d); /*這里打印的結果為number*/
    console.log('--------------------------');

    var e = undefined; /*未定義值undefined*/
    console.log(typeof e); /*這里打印的結果為undefined*/
    e = Number(e);
    console.log(e); /*這里打印的結果為NaN*/
    console.log(typeof e); /*這里打印的結果為number*/
    console.log('--------------------------');

①當字符串為純數字時直接返回該數字,當字符串中含有非數字時返回NaN(NaN,全稱:not a number ,表示不是一個數字,但 typeof NaN 返回的是number。)

②當字符串為空串時返回 0

③當變量為布爾類型時:true返回 1 ,false返回 0

④當變量為null類型時返回 0

⑤當變量為undefined時返回 NaN

通過parseInt()轉換:

    var sty = '200px的樣式';
    sty = parseInt(sty);
    console.log(sty); /*輸出結果為200*/
    console.log(typeof sty); /*number*/

    var std = '200.545px的樣式';
    std = parseInt(std);
    console.log(std); /*輸出結果為200*/
    console.log(typeof std); /*number*/

    var str = '我有200塊';
    str = parseInt(str);
    console.log(str); /*輸出結果為NaN*/
    console.log(typeof str); /*number*/

    var stx = '20乘10等於200';
    stx = parseInt(stx);
    console.log(stx); /*輸出結果為20*/
    console.log(typeof stx); /*number*/

特點:它可以對字符串中的數字進行提取並返回,對於非字符串的轉換它會先將其轉換為字符串再進行轉換

注意:當需要轉換的值為“0X”等其他數開頭時,某些低版本瀏覽器會將其當作某進制數來進行轉換。

    可以通過給parseInt傳參解決,parseInt(string,10)。string代表需要轉換的變量10代表將該string參數當成幾進制進行轉換。

提取規則:1.非數字開頭直接返回NaN。  2.以數字開頭時提取數字,直到遇到非數字。 3.僅提取整數,小數點及后面的值不提取。

通過parseFloat()轉換:

    var stx = '200.545的數據';
    stx = parseFloat(stx);
    console.log(stx); /*輸出結果為200.545*/
    console.log(typeof stx); /*number*/

特點:它可以對字符串中的數字進行提取並返回,對於非字符串的轉換它會先將其轉換為字符串再進行轉換

提取規則:和 parseInt() 大致相同,不同的是它可以提取小數(必須是有效小數)

總結:將變量強制轉換為Number類型的方法有:①Number() ②parseInt() ③parseFloat()

 

3.將變量類型轉換為Boolean類型:

通過Boolean()轉換:

    var num = 0;
    num = Boolean(num)
    console.log(num) /* false */

    var num = NaN;
    num = Boolean(num)
    console.log(num) /* false */

    var num = 2;
    num = Boolean(num)
    console.log(num) /* true */

    var num = -2;
    num = Boolean(num)
    console.log(num) /* true */

    var str = "ssaiuhujakjs";
    str = Boolean(str)
    console.log(str) /* true */

    var str = ""; /*空串*/
    str = Boolean(str)
    console.log(str) /* false */

    var str = "   "; /*全空格的字符串*/
    str = Boolean(str)
    console.log(str) /* true */

    var str = null;
    str = Boolean(str)
    console.log(str) /* false */

    var str = undefined;
    str = Boolean(str)
    console.log(str) /* false */

    var str = Object;
    str = Boolean(str)
    console.log(str) /* true */

    var str = Array;
    str = Boolean(str)
    console.log(str) /* true */

    var str = Function;
    str = Boolean(str)
    console.log(str) /* true */

特點:1.非 0 和 NaN 的數字全部轉換為 true

   2.除了空字符串為 false,其他任何字符串都轉換為 true

   3.null 和 undefined 都轉換為 false

   4.對象(Object、Function、Array)都轉換為 true

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM