成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

js中if判斷語(yǔ)句執(zhí)行原因--數(shù)據(jù)類(lèi)型轉(zhuǎn)換原理

RyanQ / 2684人閱讀

前言:

相信我們程序員平時(shí)寫(xiě)代碼用的最多的邏輯就是if語(yǔ)句了吧,可你知道他的原理是什么嗎,其實(shí)這跟Boolean()這個(gè)方法有關(guān),此方法為自動(dòng)執(zhí)行(在需要判定Boolean的語(yǔ)句中中自動(dòng)執(zhí)行),這些轉(zhuǎn)換規(guī)則對(duì)理解if控制語(yǔ)句自動(dòng)執(zhí)行相應(yīng)的Boolean轉(zhuǎn)換非常重要,

這是我們平時(shí)所寫(xiě)的代碼
    var a = "auto"
    if(a){
        console.log("執(zhí)行")
    }
    
其實(shí)執(zhí)行起來(lái)是這樣,理解一下
    var a = "auto"
    if(Boolean(a)){
        console.log("執(zhí)行")
    }

這樣其實(shí)就好理解了,每個(gè)類(lèi)型的值其實(shí)都可以轉(zhuǎn)換為Boolean值,有一定的規(guī)則,接下來(lái)我們看看具體操作

取證
將需要轉(zhuǎn)換的數(shù)據(jù)傳遞給Boolean()函數(shù)

Boolean: 毋庸置疑true就是true,false就是false,但是new Boolean這里有坑

  var boolean1 = true;  // true;  
  var boolean2 = false; // false; 
  console.log(Boolean(boolean1));
  console.log(Boolean(boolean2));

// 這里坑來(lái)了 Boolean()是返回布爾值,new Boolean()是返回布爾對(duì)象(對(duì)象里面的值為false,)

  var x = Boolean(false);
  if (x) {
    // 這里的代碼不會(huì)被執(zhí)行
  }
  
  var x = new Boolean(false);
  if (x) {
    // 這里的代碼會(huì)被執(zhí)行
  }


注意不要將基本類(lèi)型中的布爾值 true 和 false 與值為 true 和 false 的 Boolean 對(duì)象弄混了。不要在應(yīng)該使用基本類(lèi)型布爾值的地方使用 Boolean 對(duì)象。
    var x = Boolean(expression);     // 推薦(Boolean值)
    var x = new Boolean(expression); // 不推薦,Boolean對(duì)象里的值不管是true還是false,只要對(duì)象有值都會(huì)判定為true,if語(yǔ)句中都會(huì)執(zhí)行、

String: 只要不是空字符串(沒(méi)有任何內(nèi)容),任何非空字符串(包含空格) 都會(huì)轉(zhuǎn)換為true

    var str1 = "";  // "" --> false
    var str2 = " "; // " " --> true;
    var str3 = "abc"; // " " --> true;
    console.log(Boolean(str1));
    console.log(Boolean(str2));
    console.log(Boolean(str3));

Number: 只有0和NaN會(huì)轉(zhuǎn)換為false,其他都會(huì)轉(zhuǎn)換為true

    var num1 = 0;  //false
    var num2 = -1; //true
    var num3 = 1;  //true
    var num4 = NaN; //false
    console.log(Boolean(num1));        
    console.log(Boolean(num2)); 
    console.log(Boolean(num3));       
    
    

null、undefined: 都會(huì)轉(zhuǎn)換為false

    var n = null;  //false
    var u = undefined;  //false
    console.log(Boolean(n)); 
    console.log(Boolean(u));  
    
總結(jié):

false / "" / NaN / 0 / null / undefined 都會(huì)轉(zhuǎn)換為 false

注意 Boolean() 和 new Boolean()的區(qū)別
前者生成布爾值,后者生成布爾對(duì)象,后者不推薦使用
參考:
大部分取經(jīng)于js高程紅寶書(shū)26頁(yè),3.4.4章節(jié)(Boolean類(lèi)型的介紹)
new Boolean()的坑取經(jīng)于MDN中Boolean的描述

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/103719.html

相關(guān)文章

  • JavaScript 基礎(chǔ)知識(shí) - 入門(mén)篇(一)

    摘要:如圖意義位用來(lái)表示符號(hào)位位用來(lái)表示指數(shù)位表示尾數(shù)浮點(diǎn)數(shù),比如無(wú)限循環(huán)無(wú)限循環(huán)此時(shí)只能模仿十進(jìn)制進(jìn)行四舍五入了,但是二進(jìn)制只有和兩個(gè),于是變?yōu)樯崛搿_@即是計(jì)算機(jī)中部分浮點(diǎn)數(shù)運(yùn)算時(shí)出現(xiàn)誤差,丟失精度的根本原因。 showImg(http://ww1.sinaimg.cn/large/9c47d583gy1fmtw1ma9g4j21hc0u0ach.jpg); 前言 最近一直有小伙伴跟我說(shuō)J...

    sarva 評(píng)論0 收藏0
  • javascript基礎(chǔ)

    摘要:一彈窗和輸出執(zhí)行順序是從上到下執(zhí)行控制瀏覽器彈出一個(gè)警告框讓計(jì)算機(jī)在頁(yè)面中輸出一個(gè)內(nèi)容在中寫(xiě)一個(gè)內(nèi)容寫(xiě)可以向中輸出一個(gè)內(nèi)容看我出不出來(lái)向控制臺(tái)輸出一個(gè)內(nèi)容作用是向控制臺(tái)輸出一個(gè)內(nèi)容你猜我在哪出來(lái)二編寫(xiě)位置可以將代碼編寫(xiě)到外部文件中,然后通過(guò) 一.彈窗和輸出 **javascript執(zhí)行順序是從上到下執(zhí)行** 1.控制瀏覽器彈出一個(gè)警告框 alert(HelloWord); 2.讓計(jì)...

    XFLY 評(píng)論0 收藏0
  • 分析 JavaScript 的數(shù)據(jù)類(lèi)型與變量

    摘要:基本數(shù)據(jù)類(lèi)型在中,基本數(shù)據(jù)類(lèi)型有種,即數(shù)值字符串布爾值。兩個(gè)布爾值轉(zhuǎn)為數(shù)值進(jìn)行比較。對(duì)于對(duì)象和布爾值,調(diào)用它們的方法得到對(duì)應(yīng)的字符串值,然后進(jìn)行字符串相加。減法對(duì)于字符串布爾值或者,自動(dòng)調(diào)用,轉(zhuǎn)換結(jié)果若為,那么最終結(jié)果為。 這篇文章,來(lái)聊聊 JS 中的數(shù)據(jù)類(lèi)型與變量。這是在學(xué)習(xí) JS 時(shí)最基礎(chǔ)的一類(lèi)問(wèn)題,但卻很重要。希望我的分享有幫助到你。 文章開(kāi)頭,我先提幾個(gè)面試中遇到的問(wèn)題: 比如...

    Mike617 評(píng)論0 收藏0
  • JavaScript基本語(yǔ)法(一)

    摘要:目錄語(yǔ)句變量小結(jié)基本語(yǔ)法一是核心知識(shí)點(diǎn)的基本語(yǔ)法的第一部分,主要介紹了語(yǔ)句表達(dá)式變量和數(shù)據(jù)類(lèi)型不包括函數(shù)類(lèi)型的基本知識(shí)點(diǎn),函數(shù)類(lèi)型將在下一章函數(shù)二中詳細(xì)探討語(yǔ)句程序的執(zhí)行是由一條條語(yǔ)句組成的每一條語(yǔ)句是為完成特定任務(wù)而執(zhí)行的操作語(yǔ)句當(dāng)中可以 目錄 1. 語(yǔ)句 2. 變量 3. 小結(jié) JavaScript基本語(yǔ)法(一)是JavaScript核心知識(shí)點(diǎn)(ECMAScript)的基本語(yǔ)法的...

    shiina 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<