<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript中的一些隱式轉(zhuǎn)換和總結(jié)(推薦)

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:22:57
        文檔

        JavaScript中的一些隱式轉(zhuǎn)換和總結(jié)(推薦)

        JavaScript中的一些隱式轉(zhuǎn)換和總結(jié)(推薦):js中的不同的數(shù)據(jù)類型之間的比較轉(zhuǎn)換規(guī)則如下: 1. 對象和布爾值比較 對象和布爾值進行比較時,對象先轉(zhuǎn)換為字符串,然后再轉(zhuǎn)換為數(shù)字,布爾值直接轉(zhuǎn)換為數(shù)字 [] == true; //false []轉(zhuǎn)換為字符串'',然后轉(zhuǎn)換為數(shù)字0,true轉(zhuǎn)換為數(shù)字1,所以為false
        推薦度:
        導(dǎo)讀JavaScript中的一些隱式轉(zhuǎn)換和總結(jié)(推薦):js中的不同的數(shù)據(jù)類型之間的比較轉(zhuǎn)換規(guī)則如下: 1. 對象和布爾值比較 對象和布爾值進行比較時,對象先轉(zhuǎn)換為字符串,然后再轉(zhuǎn)換為數(shù)字,布爾值直接轉(zhuǎn)換為數(shù)字 [] == true; //false []轉(zhuǎn)換為字符串'',然后轉(zhuǎn)換為數(shù)字0,true轉(zhuǎn)換為數(shù)字1,所以為false

        js中的不同的數(shù)據(jù)類型之間的比較轉(zhuǎn)換規(guī)則如下:

        1. 對象和布爾值比較

        對象和布爾值進行比較時,對象先轉(zhuǎn)換為字符串,然后再轉(zhuǎn)換為數(shù)字,布爾值直接轉(zhuǎn)換為數(shù)字

        [] == true; //false []轉(zhuǎn)換為字符串'',然后轉(zhuǎn)換為數(shù)字0,true轉(zhuǎn)換為數(shù)字1,所以為false

        2. 對象和字符串比較

        對象和字符串進行比較時,對象轉(zhuǎn)換為字符串,然后兩者進行比較。

        [1,2,3] == '1,2,3' // true [1,2,3]轉(zhuǎn)化為'1,2,3',然后和'1,2,3', so
        結(jié)果為true;

        3. 對象和數(shù)字比較

        對象和數(shù)字進行比較時,對象先轉(zhuǎn)換為字符串,然后轉(zhuǎn)換為數(shù)字,再和數(shù)字進行比較。

        [1] == 1; // true `對象先轉(zhuǎn)換為字符串再轉(zhuǎn)換為數(shù)字,二者再比較 [1] => '1' => 1 所以
        結(jié)果為true

        4. 字符串和數(shù)字比較

        字符串和數(shù)字進行比較時,字符串轉(zhuǎn)換成數(shù)字,二者再比較。

        '1' == 1 // true

        5. 字符串和布爾值比較

        字符串和布爾值進行比較時,二者全部轉(zhuǎn)換成數(shù)值再比較。

        '1' == true; // true

        6. 布爾值和數(shù)字比較

        布爾值和數(shù)字進行比較時,布爾轉(zhuǎn)換為數(shù)字,二者比較。

        true == 1 // true

        許多剛接觸js的童鞋看到這么多的轉(zhuǎn)換規(guī)則就懵圈了,其實規(guī)律很簡單,大家可以記下邊這個圖

        如圖,任意兩種類型比較時,如果不是同一個類型比較的話,則按如圖方式進行相應(yīng)類型轉(zhuǎn)換,如對象和布爾比較的話,對象 => 字符串 => 數(shù)值 布爾值 => 數(shù)值。
        另外,我們來看下一些需要"特別照顧"的。

        來看一個有趣的題

        [] == false;
        ![] == false;

        這兩個的結(jié)果都是true,第一個是,對象 => 字符串 => 數(shù)值0 false轉(zhuǎn)換為數(shù)字0,這個是true應(yīng)該沒問題,
        第二個前邊多了個!,則直接轉(zhuǎn)換為布爾值再取反,轉(zhuǎn)換為布爾值時,空字符串(''),NaN,0,null,undefined這幾個外返回的都是true, 所以! []這個[] => true 取反為false,所以[] == false為true。

        還有一些需要記住的,像:

        undefined == null //true undefined和null 比較返回true,二者和其他值比較返回false
        Number(null) //0

        曾經(jīng)看到過這樣一個代碼:  (!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]*~+[]]] = sb , 你敢相信, 當(dāng)時就嚇了 寶寶一跳。

        剛接觸到時候,Js很讓我困惑,正是由于它‘善變',下面我來總結(jié)一下:

        7. JS的數(shù)據(jù)類型: Number,Boolean,String,Undefined,Null,Symbol(es6新定義的)和 Object (注: Array是特殊的Object)

            typeof 返回的7中類型: number boolean string object undefined object function

        MDN 這樣介紹Javascript: JavaScript 是一種弱類型或者說動態(tài)語言。這意味著你不用提前聲明變量的類型,在程序運行過程中,類型會被自動確定。這也意味著你可以使用同一個變量保存不同類型的數(shù)據(jù)

        8. 下面來看下常見的隱式轉(zhuǎn)換:

          基本類型:

           運算符(+,-,*,/,%)操作時 轉(zhuǎn)換類型

            ”+“ 號運算符 :   

                  

                            

              總結(jié): 當(dāng)加號運算符時,String和其他類型時,其他類型都會轉(zhuǎn)為 String;其他情況,都轉(zhuǎn)化為Number類型 , 注: undefined 轉(zhuǎn)化為Number是 為'NaN‘, 任何Number與NaN相加都為NaN。

                  其他運算符時, 基本類型都轉(zhuǎn)換為 Number,String類型的帶有字符的比如: '1a' ,'a1' 轉(zhuǎn)化為 NaN 與undefined 一樣。

              tip:(1)NaN 不與 任何值相等 包括自身,所以判斷一個值 是否為 NaN, 即用 "!==" 即可。  

                 (2) 轉(zhuǎn)換為 Boolean類型為 false 的有:null,0,'',undefined,NaN,false  

                (3)number() 與 parseInt() 都可以將對象轉(zhuǎn)化為Number類型,Number函數(shù)要比parseInt函數(shù)嚴(yán)格很多。基本上,只要有一個字符無法轉(zhuǎn)成數(shù)值,整個字符串就會被轉(zhuǎn)為NaN。  

          

          Object類型

            當(dāng)object與基本類型運算時:

        var obj = {
         toString: function(){
         return 6;
         },
         valueOf: function(){
         return 5;
         }
        };
        var obj1 = {
         valueOf: function(){
         return 'a';
         },
         toString: function(){
         return 'b';
         }
        };

                   

                          

              

                    當(dāng)對 obj,obj1 用Number()和String()換轉(zhuǎn)時

                

                    總結(jié): Number類型會先調(diào)用valueOf(), String類型會先調(diào)用toString(),  如果結(jié)果是原始值,則返回原始值,否則繼續(xù)用toString 或 valueOf(),繼續(xù)計算,如果結(jié)果還不是原始值,則拋出一個類型錯誤; 

            看如下情況:

            

        為什么 {} + [] = 0 ?  因為 javascript在運行時, 將 第一次{} 認(rèn)為是空的代碼塊,所以就相當(dāng)于 +[] = 0.  還有 {} +5 = 5, 同理。

        總結(jié):

        1. 類型錯誤有可能會被類型轉(zhuǎn)換所隱藏。

        2. “+”既可以表示字符串連接,又可以表示算術(shù)加,這取決于它的操作數(shù),如果有一個為字符串的,那么,就是字符串連接了。

        3. 對象通過valueOf方法,把自己轉(zhuǎn)換成數(shù)字,通過toString方法,把自己轉(zhuǎn)換成字符串。

        4.具有valueOf方法的對象,應(yīng)該定義一個相應(yīng)的toString方法,用來返回相等的數(shù)字的字符串形式。

        5.檢測一些未定義的變量時,應(yīng)該使用typeOf或者與undefined作比較,而不應(yīng)該直接用真值運算。

        總結(jié)

        以上所述是小編給大家介紹的JavaScript中的一些隱式轉(zhuǎn)換和總結(jié)(推薦),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家的支持!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript中的一些隱式轉(zhuǎn)換和總結(jié)(推薦)

        JavaScript中的一些隱式轉(zhuǎn)換和總結(jié)(推薦):js中的不同的數(shù)據(jù)類型之間的比較轉(zhuǎn)換規(guī)則如下: 1. 對象和布爾值比較 對象和布爾值進行比較時,對象先轉(zhuǎn)換為字符串,然后再轉(zhuǎn)換為數(shù)字,布爾值直接轉(zhuǎn)換為數(shù)字 [] == true; //false []轉(zhuǎn)換為字符串'',然后轉(zhuǎn)換為數(shù)字0,true轉(zhuǎn)換為數(shù)字1,所以為false
        推薦度:
        標(biāo)簽: 轉(zhuǎn)換 js javascript
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品国产品国语在线| 日韩亚洲精品福利| 亚洲高清在线观看| 丁香花在线视频观看免费| 亚洲一区爱区精品无码| 99re8这里有精品热视频免费| 亚洲av无码国产精品色在线看不卡 | 国产免费小视频在线观看| 在线观看国产一区亚洲bd| 国产免费一区二区三区VR| 男男gay做爽爽免费视频| 免费大学生国产在线观看p| 一级A毛片免费观看久久精品| 亚洲Av无码乱码在线观看性色| 男女一边桶一边摸一边脱视频免费 | 日韩精品视频免费在线观看| 色欲aⅴ亚洲情无码AV蜜桃| 国产99视频精品免费视频7| 国产精品福利在线观看免费不卡| 国产精品亚洲аv无码播放| 18禁成人网站免费观看| 亚洲男人天堂2022| 免费在线观看日韩| 久久精品国产免费| 亚洲春色另类小说| 成在线人永久免费视频播放| 日韩精品免费一线在线观看| 亚洲成AV人片在线观看无码| 国产乱子精品免费视观看片| 亚洲AV成人无码网站| 亚洲成av人片天堂网| 青青青国产在线观看免费网站| 精品久久久久久亚洲综合网| 亚洲色婷婷六月亚洲婷婷6月| 亚洲大片免费观看| 日本激情猛烈在线看免费观看| 久久亚洲精品成人| 日本视频免费在线| 中文字幕免费在线| 四虎国产精品成人免费久久| 亚洲成a人片毛片在线|