JS中Number(),parseInt(),parseFloat()和自動類型轉換


【參考來源】

  https://www.cnblogs.com/yi0921/p/6196841.html

  https://blog.csdn.net/u010200222/article/details/10282351

【正文內容】

  Number()

-------------------------------------------------------------------------------------
--Number()
--
--
--Boolean值,true->1,false->0。
--
--數字值,整型就是整型,浮點型就是浮點型,科學計數就科學計數
--
--null值,轉為0
--
--二進制,八進制,十六進制格式,轉為十進制的數值
--
--字符串為空,轉為0
--
--字符串中是純科學計數,數值會直接轉為十進制的數值
--
--undefined , 對象 , 數組 ,字符串不為純數字和科學計數時 返回NaN
------------------------------------------------------------------------------------

    //JS區分0和-0
        var num = 123;
        var num = 123.123;
        var num = 0b10;
        var num = 010;
        var num = 0xff;
        var num = 5e2;
        var num = 5e-2;

        var num = NaN;

        console.log('值: ' , num);
        console.log('類型: ' , typeof(num))

        //NaN本身為false
        //其他類型轉為數值失敗時都為NaN
        console.log(NaN - 100);
        if(NaN){
            console.log('Yes');
        }else{
            console.log('No');
        }

        //NaN
        var a = '123ad';
        //123
        var a = '123';
        //NaN
        var a = 'f3ad';
        //0
        var a = false;
        //1
        var a = true;
        //NaN
        var a = undefined;
        var a = new Object();
        var a = Array(1,23);

        //1e+124
        var a = 10e123;

        //3
        var a = 0b11;

        //255
        var a = 0xff;

        //1.23
        var a = 1.23;

        //0
        var a = '';

        //1200
        var a = '12e2';

        //0
        var a = null;

        //90
        var a = 0132;

        var n = Number(a);
        console.log(n);

 

parseInt()


-----------------------------------------------------------------------------------------------------------------------------------------
--parseInt()
--
--
--數值正常轉化,如果為浮點數,則轉為整型,舍棄小數點后的數值
--
--數字開頭的字符串,只轉換數字整數部分,忽略字母部分
--
--二進制,八進制,十六進制轉化時,轉化為十進制的數值
--
--科學計數法,能解析時正常解析,不能時返回第一個數字
--
--Boolean,undefined , 對象 , 數組 ,空字符串,字符串開頭不為純數字和科學計數時 返回NaN
----------------------------------------------------------------------------------------------------------------------------------------

        //123
        var a = '123ad';
        //123
        var a = '123';
        //NaN
        var a = 'f3ad';
        //NaN
        var a = false;
        //NaN
        var a = true;
        //NaN
        var a = undefined;
        var a = new Object();

        //13 第一個值
        var a = Array(13,2);

        //3100000能夠解析處時正常解析,不能時只返回第一個數字
        var a = 31e5;

        //3
        var a = 0b11;

        //255
        var a = 0xff;

        //1
        var a = 1.23;

        //NaN
        var a = '';

        //12  字符串只返回12e舍棄
        var a = '12e2';

        //NaN
        var a = null;

        //1
        var a = 1.5;

        //90
        var a = 0132;

        var n = parseInt(a);
        console.log(n);

        var a = parseInt("10",2);
        var a = parseInt("FF",16);
        var a = parseInt("10",8);
        console.log(a);

 

 parseFloat()

 


--------------------------------------------------------------------------------------------------------------------------------
--parseFloat()
--
--
--數值正常轉化,整型為整型,浮點型為浮點型
--
--數字開頭的字符串,只轉換數字整數部分,忽略字母部分
--
--二進制,八進制,十六進制轉化時,轉化為十進制的數值
--
--科學計數法,能解析時正常解析,超出范圍則返回Infinity
--
--Boolean,undefined , 對象 , 數組 ,空字符串,字符串開頭不為純數字和科學計數時 返回NaN
--
--不能有多個小數點報語法錯誤
--------------------------------------------------------------------------------------------------------------------------------

         //123
        var a = '123ad';
        //123
        var a = '123';
        //NaN
        var a = 'f3ad';
        //NaN
        var a = false;
        //NaN
        var a = true;
        //NaN
        var a = undefined;
        var a = new Object();

        //13 第一個值
        var a = Array(13,2);

        //3100000 范圍過大將轉為科學計數法再大將為Infinity
        var a = 31e5;

        //3
        var a = 0b11;

        //255
        var a = 0xff;

        //1.23
        var a = 1.23;

        //NaN
        var a = '';

        //1200
        var a = '12e2aa';

        //NaN
        var a = null;

        //1.5
        var a = 1.5;

        //90
        var a = 0132;

        //
        var a = 1.113;

        var n = parseFloat(a);
        console.log(n);

 

 自動類型轉換

   數字類型: 在字符串環境下 隱身轉換為字符串  

   字符串類型 在數字環境下,可以隱式轉換為字符串中的數字或NaN;

          在布爾環境下,可以隱式轉換為true.

    空字符串:在數字環境下可以隱式轉換為0;

         在布爾環境下可以隱式轉換為false;

        字符串'true': 在數字環境下可以隱式轉換位1;布爾為true

    字符串'false': 數字環境為0,布爾位false

     null: 在字符串環境下,轉換為'null';

         數字環境下,轉換為0,布爾環境下,轉為false

     NaN: 在字符串環境下可以隱式轉換為'NaN';

       布爾環境下,轉換為false

    undefined: 字符串環境下,轉換為“undefined”,

          數字環境下,轉為NaN,

                 布爾下,轉為false

    true: 字符串轉為'true',數字環境下轉為1

     false: 字符串轉為'false',數字環境下轉為0

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com