<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 數(shù)據(jù)類型的轉(zhuǎn)化(JavaScript)

    2020-3-15    前端達(dá)人

    數(shù)據(jù)類型的轉(zhuǎn)化(JavaScript)—自動轉(zhuǎn)化和強制轉(zhuǎn)化

    這一周,我來分享一下在JavaScript中的數(shù)據(jù)類型轉(zhuǎn)化。

    首先我們要知道在JavaScript中的數(shù)據(jù)類型有什么?在這里我就不詳細(xì)介紹了,幫你總結(jié)好了。

    1.布爾類型-----Boolean---isNaN()
        用來判斷一個變量是否為非數(shù)字的類型,是數(shù)字返回false,不是數(shù)字返回true。
     2.數(shù)值類型-----Number
        存儲時,是按照二進制數(shù)值存儲,輸出時,默認(rèn)都是按照十進制數(shù)值輸出。
        在JavaScript中二進制前加0b/0B,八進制前面加0 ,十六進制前面加0x。
        如果需要按照原始進制數(shù)值輸出,用格式為:
                變量名稱.toString(進制) ;
        注意的是:S必須大寫,將數(shù)值轉(zhuǎn)化為字符串形式輸出
        如:console.log( a.toString(2) );將a轉(zhuǎn)換成2進制的形式輸出。
     3.字符串類型-----String
        JavaScript可以用單引號嵌套雙引號, 或者用雙引號嵌套單引號(外雙內(nèi)單,外單內(nèi)雙)
        字符串是由若干字符組成的,這些字符的數(shù)量就是字符串的長度。
        通過字符串的length屬性可以獲取整個字符串的長度。
            例子:var str = 'my name is xiaoming';
                      console.log(str.length);
              輸出的結(jié)果是19。可以知道空格也代表一個字符。
     4.undefined
        表示沒有數(shù)值-----應(yīng)該有數(shù)值,但是現(xiàn)在沒有數(shù)值
     5.null
        表示數(shù)值為空-----表示有數(shù)值,但是數(shù)值是“空”
    
    上面就是數(shù)據(jù)類型的五種形式。那么它是如何轉(zhuǎn)化呢?聽我詳細(xì)給你講解。
    
    在 JavaScript 程序中 , 變量中存儲的數(shù)據(jù)類型沒有限制,也就是在變量中可以存儲任何符合JavaScript語法規(guī)范的數(shù)據(jù)類型。但是在 JavaScript 程序的執(zhí)行過程中,往往需要變量中存儲的數(shù)值是某種特定的數(shù)據(jù)類型,別的數(shù)據(jù)類型不行,此時就需要進行數(shù)據(jù)類型的轉(zhuǎn)化。
    ————————————————
    版權(quán)聲明:本文為CSDN博主「什什么都繪」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
    原文鏈接:https://blog.csdn.net/qq_39406353/article/details/104864224上面就是數(shù)據(jù)類型的五種形式。那么它是如何轉(zhuǎn)化呢?聽我詳細(xì)給你講解。
    
    在 JavaScript 程序中 , 變量中存儲的數(shù)據(jù)類型沒有限制,也就是在變量中可以存儲任何符合JavaScript語法規(guī)范的數(shù)據(jù)類型。但是在 JavaScript 程序的執(zhí)行過程中,往往需要變量中存儲的數(shù)值是某種特定的數(shù)據(jù)類型,別的數(shù)據(jù)類型不行,此時就需要進行數(shù)據(jù)類型的轉(zhuǎn)化。
    
    JavaScript中數(shù)據(jù)類型的轉(zhuǎn)化,分為自動轉(zhuǎn)化和強制轉(zhuǎn)化:
            自動轉(zhuǎn)化是計算機程序,自動完成的轉(zhuǎn)化。
            強制轉(zhuǎn)化是程序員,強行完成的轉(zhuǎn)化
    1.布爾類型的自動轉(zhuǎn)化:
     在 執(zhí)行 if 判斷時 ,其他數(shù)據(jù)類型會自動轉(zhuǎn)化為布爾類型
             其他類型轉(zhuǎn)化為布爾類型的原則
       0   ''   undefined   null  NaN  這五種情況轉(zhuǎn)化為false
              特別提醒 0.0  0.00000  都算是0 
     其他的所有都會轉(zhuǎn)化為 true
    
    2.字符串的自動轉(zhuǎn)化:
      執(zhí)行字符串拼接, +號的兩側(cè),應(yīng)該都是字符串類型,會將其他數(shù)據(jù)類型轉(zhuǎn)化為字符串類型
            轉(zhuǎn)化原則:
                //基本數(shù)據(jù)類型 / 簡單數(shù)據(jù)類型------將數(shù)據(jù)數(shù)值直接轉(zhuǎn)化為字符串 , 然后執(zhí)行拼接操作
             布爾值 true  ---> 字符串 'true'
             布爾值 false ---> 字符串 'fasle'
             undefined ---> 字符串 'undefined'
             unll ---> 字符串 'null'
             數(shù)值 ---> 將數(shù)值解析轉(zhuǎn)化為'對應(yīng)的純數(shù)字的字符串'
                // 引用數(shù)據(jù)類型 / 復(fù)雜數(shù)據(jù)類型
             數(shù)組 ---> 將 [] 中的內(nèi)容,轉(zhuǎn)化為字符串的形式,執(zhí)行拼接操作
             對象 ---> 任何對象,任何內(nèi)容,都會轉(zhuǎn)化為 [object Object] 固定的內(nèi)容形式,執(zhí)行拼接操作
             函數(shù) ---> 將所有的程序代碼,轉(zhuǎn)化為字符串,執(zhí)行拼接操作
    
    3.數(shù)值的自動轉(zhuǎn)化:
    在執(zhí)行運算時,會觸發(fā)數(shù)據(jù)類型的自動轉(zhuǎn)化。
     轉(zhuǎn)化原則:
        布爾類型 : true  --->  1         
                   false --->  0
        undefined : 轉(zhuǎn)化為 NaN 
        null : 轉(zhuǎn)化為 0
        字符串 : 
            如果整個字符串,是純數(shù)字字符串,或者符合科學(xué)計數(shù)法 ---> 轉(zhuǎn)化為對應(yīng)的數(shù)值
           如果字符串內(nèi)有不符合數(shù)字規(guī)范的內(nèi)容 ---> 轉(zhuǎn)化為 NaN 
        數(shù)組,對象,函數(shù):
          如果是+加號執(zhí)行的是字符串拼接效果,按照這些數(shù)據(jù)類型轉(zhuǎn)化為字符串的原則來轉(zhuǎn)化
          如果是其他形式的運算 執(zhí)行結(jié)果都是 NaN
    
    4.布爾類型的強制轉(zhuǎn)化:
     
    
      布爾類型的強制轉(zhuǎn)化就是使用JavaScript中定義好的 方法/函數(shù) Boolean( 數(shù)據(jù)/變量 )
      Boolean() 這個方法 不會改變 變量中存儲的原始數(shù)值
       轉(zhuǎn)化原則與自動轉(zhuǎn)化原則相同
         0   ''   undefined  null  NaN --------> false 
         其他數(shù)據(jù),都轉(zhuǎn)化為true
    
    5.字符串類型的強制轉(zhuǎn)化:
      
    
     方法1,變量.toString(進制類型)
             將數(shù)值強制轉(zhuǎn)化為字符串,并且可以設(shè)定轉(zhuǎn)化的進制,.toString() 之前,不能直接寫數(shù)值,必須是寫成變量的形式
             進制常用的數(shù)值是 2 8 16 ,可以設(shè)定的范圍是 2 - 36 進制  
     方法2,String( 變量 / 數(shù)據(jù) )
             將變量或者數(shù)據(jù),轉(zhuǎn)化為字符串,原則按照自動轉(zhuǎn)化的原則來執(zhí)行,不會改變變量中存儲的原始數(shù)值
             但是在字符串拼接時,會將其他數(shù)據(jù)類型自動轉(zhuǎn)化為字符串
    
     6.數(shù)字類型的強制轉(zhuǎn)化:
     
    
    方法1 , Number(變量/數(shù)值) 
             console.log( Number(true) );   // 1
             console.log( Number(false) );  // 0
             console.log( Number(null) );   // 0
             console.log( Number(undefined) );   // NaN
             console.log( Number('100') );       // 對應(yīng)的數(shù)值
             console.log( Number('100.123') );   // 對應(yīng)的數(shù)值
             console.log( Number('2e4') );       // 對應(yīng)的數(shù)值
             console.log( Number('123abc') );    // NaN
             console.log( Number( [1,2,3,4,5] ) );                           // NaN
             console.log( Number( {name:'zhangsan'} ) );                     // NaN
             console.log( Number( function fun(){console.log('abc')} ) );    // NaN
     將其他類型強制轉(zhuǎn)化為數(shù)值類型,轉(zhuǎn)化原則與自動轉(zhuǎn)化選擇相同
    
     方法2, parseInt(變量 / 數(shù)據(jù))   是獲取變量或者數(shù)據(jù)的整數(shù)部分
             從數(shù)據(jù)的 左側(cè)起 解析獲取 整數(shù)內(nèi)容 
             console.log( parseInt(true) );                 // 都是 NaN            
             console.log( parseInt(false) );                                   
             console.log( parseInt(null) );                                    
             console.log( parseInt(undefined) );                               
             console.log( parseInt( {name:'zhangsan'} ) );                     
             console.log( parseInt( function fun(){console.log('abc')} ) ); 
    
             數(shù)組執(zhí)行,是獲取 數(shù)值部分 也就是 沒有 []的部分
             1,2,3,4,5  整數(shù)部分是 1  1之后是逗號 逗號不是整數(shù),之后的部分也就不算整數(shù)
             獲取第一個數(shù)值的整數(shù)部分,如果有就獲取,如果沒有,結(jié)果是NaN
             console.log( parseInt( [1,2,3,4,5] ) );        // 結(jié)果是 1                      
             console.log( parseInt( [null,2,3,4,5] ) );     // 結(jié)果是 NaN 
    
             如果是整數(shù)就直接獲取,如果是浮點數(shù),或者科學(xué)計數(shù)法,就獲取整數(shù)部分
             console.log( parseInt( 100 ) );          // 整數(shù)是直接獲取
             console.log( parseInt( 0.0123 ) );       // 浮點數(shù)是獲取整數(shù)部分
             console.log( parseInt( 3.123456e3 ) );   // 科學(xué)計數(shù)法是解析之后,獲取整數(shù)部分
    
             字符串不同了
             如果是純數(shù)字的字符串
             console.log( parseInt( '100' ) );         // 與數(shù)字的結(jié)果相同 
             console.log( parseInt( '0.0123' ) );      // 與數(shù)字的結(jié)果相同 
    
             console.log( parseInt( '3.123456e3' ) );   //3
             console.log( parseInt( '3abc' ) );   //3
             console.log( parseInt( '3.123' ) );   //3
    
     方法3 , parseFloat( 變量 / 數(shù)值 )
             獲取浮點數(shù)部分
             console.log( parseFloat(true) );           // 都是 NaN            
             console.log( parseFloat(false) );                                   
             console.log( parseFloat(null) );                                    
             console.log( parseFloat(undefined) );                               
             console.log( parseFloat( {name:'zhangsan'} ) );                     
             console.log( parseFloat( function fun(){console.log('abc')} ) );         
            //數(shù)值, 整數(shù),浮點數(shù),都會完整獲取
             console.log( parseFloat(100) );            //100
             console.log( parseFloat(100.1234) );       //100.1234
             console.log( parseFloat(1.234567e3) );     //1234.567
    
             // 關(guān)鍵是字符串
             // 從字符串的左側(cè)起 解析 符合浮點數(shù)的部分
             console.log( parseFloat( '100' ) );         // 與數(shù)字的結(jié)果相同 
             console.log( parseFloat( '0.0123' ) );      // 與數(shù)字的結(jié)果相同 
    
             console.log( parseFloat( '3.123456e3' ) );  // 科學(xué)技術(shù)法會解析
             console.log( parseFloat( '3.1223abc' ) );        
             console.log( parseFloat( '3.123' ) );  
    
    好了,這就是在JavaScript中數(shù)據(jù)類型的轉(zhuǎn)化,希望可以幫助到你。
    ————————————————
    版權(quán)聲明:本文為CSDN博主「什什么都繪」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
    原文鏈接:https://blog.csdn.net/qq_39406353/article/details/104864224

    日歷

    鏈接

    個人資料

    存檔

    主站蜘蛛池模板: 午夜精品久久久久久久无码| 国产亚洲精品a在线无码| 亚洲AV永久无码精品网站在线观看| 欧美高清在线精品一区| 四虎国产精品永久在线| 久久精品视屏| 亚洲国产精品一区二区久久| 国产精品免费AV片在线观看| 亚洲精品乱码久久久久久自慰| 国产免费久久精品99久久| 久热这里只精品99re8久| 国产乱人伦偷精品视频免下载| 亚洲欧美精品午睡沙发| 久久精品亚洲男人的天堂| www.精品| 成人午夜精品久久久久久久小说| 久久成人精品视频| 99精品国产在热久久| 国产精品视频白浆免费视频| 亚洲韩国精品无码一区二区三区| 亚洲AV成人精品日韩一区18p| 精品欧美一区二区三区久久久| 国产精品∧v在线观看| 亚洲国产精品线在线观看| 精品国产欧美另类一区| 97国产精品视频| 97久久久久人妻精品专区| 国产美女久久精品香蕉69| 精品久久久久久亚洲精品| 久久国产亚洲精品无码| 老司机性色福利精品视频| 日韩精品人妻系列无码专区免费| 四虎影视永久在线观看精品| 久久精品国产亚洲AV无码娇色| 无码精品人妻一区二区三区漫画 | 免费精品国产自产拍在线观看| 精品国产呦系列在线观看免费 | 亚洲精品少妇30p| 亚洲线精品一区二区三区影音先锋 | 少妇精品无码一区二区三区| 亚洲AV永久无码精品网站在线观看 |