亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

switch語(yǔ)句的妙用

scola666 / 1892人閱讀

摘要:注意必須把運(yùn)算符的結(jié)果進(jìn)行顯示轉(zhuǎn)換為布爾值,才能匹配因?yàn)榈谋磉_(dá)式的返回值不是布爾類(lèi)型,它返回的是表達(dá)式中第一個(gè)為或第一個(gè)為的那個(gè)值所以,只要你想得到的,只要符合規(guī)則,都能用實(shí)現(xiàn)就是不知道這樣寫(xiě)的代碼好不好了

switch語(yǔ)句的普通用法很簡(jiǎn)單,如下:

var a = 3;
switch (a) {
    case 1:
        console.log(a);
        break;
    case 2:
    case 3:
        console.log(a);
        break;
    default:
        break;
}

這里a和case列表中從上而下逐一做比較,如果匹配就執(zhí)行case中的代碼,若有break則跳出,無(wú)break則繼續(xù)往下匹配,直到新的匹配和break或switch代碼塊結(jié)束。
注意:
a和case值的匹配算法是執(zhí)行嚴(yán)格相等比較的(‘===’),通常a和case的值都是簡(jiǎn)單值。

case的值除了簡(jiǎn)單值之外,還可以是各種表達(dá)式,switch (a){...}中的a會(huì)和case中的表達(dá)式的結(jié)果值進(jìn)行比較(“===”),由此,我們可以這樣:

var a = [4], b = "3";

function foo(a, b) {
    return Math.abs(a - b) < 2;
}

switch (true) {
    case !(a && b):    //過(guò)濾掉a,b其中有為‘假值’的情況
        console.log("a:"+a," b:"+b);
        break;
    case foo(a,b):   //當(dāng)a,b的差值在2以?xún)?nèi),foo函數(shù)返回true
        console.log("a - b < "+Math.abs(a-b));
    case a == b:
        console.log(a+"=="+b);
        break;
    case a < b:
        console.log(a+"<"+b);
        break;
    case a > b:
        console.log(a+">"+b);
        break;
    default:
        break;
}

以上例子中,true和每個(gè)case的表達(dá)式的值進(jìn)行嚴(yán)格相等比較,當(dāng)且僅當(dāng)case表達(dá)式的值為布爾值true時(shí)才匹配,任何其他真值都不匹配。
注意:case !(a && b):必須把&&、||運(yùn)算符的結(jié)果進(jìn)行顯示轉(zhuǎn)換為布爾值,才能匹配(因?yàn)?&、||的表達(dá)式的返回值不是布爾類(lèi)型,它返回的是表達(dá)式中第一個(gè)為true、或第一個(gè)為false的那個(gè)值)

所以,只要你想得到的,只要符合規(guī)則,都能用switch實(shí)現(xiàn)!就是不知道這樣寫(xiě)的代碼好不好了!

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

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

相關(guān)文章

  • 妙用協(xié)程】 - 可持久化協(xié)程能被用來(lái)實(shí)現(xiàn)工作流

    摘要:常規(guī)版本的的是不可以被持久化保存的。在流程被阻塞的時(shí)候比如需要審批老板不在把協(xié)程持久化成入庫(kù),等流程不再阻塞的時(shí)候把協(xié)程重新從數(shù)據(jù)庫(kù)里拉起來(lái)繼續(xù)執(zhí)行。 常規(guī)版本的Python的generator是不可以被持久化保存的。但是stackless和pypy這兩個(gè)修改版本的Python解釋器可以。下面這段代碼演示了如何把一個(gè)執(zhí)行中的函數(shù)持久化保存,然后過(guò)段時(shí)間再把函數(shù)從上次執(zhí)行到的地方原樣拉起...

    wpw 評(píng)論0 收藏0
  • 妙用協(xié)程】 - 可resume異常處理

    摘要:標(biāo)準(zhǔn)的異常處理是這樣的這段代碼會(huì)打印出而不會(huì)打印出,因?yàn)楫惓?huì)中斷當(dāng)前流程,跳轉(zhuǎn)到部分去繼續(xù)執(zhí)行。這種行為類(lèi)似里的。如何實(shí)現(xiàn)的其實(shí)原理上很簡(jiǎn)單。的時(shí)候把當(dāng)前協(xié)程的狀態(tài)保存起來(lái),如果決定要,就把協(xié)程的時(shí)刻的狀態(tài)重新恢復(fù)然后從那個(gè)點(diǎn)繼續(xù)執(zhí)行。 標(biāo)準(zhǔn)的異常處理是這樣的 try: print(hello) raise Exception() print(!!!) ex...

    Jeff 評(píng)論0 收藏0
  • JavaScript中this妙用

    摘要:關(guān)鍵字始腳本能夠根據(jù)使用這個(gè)關(guān)鍵字的上下文將值傳遞給函數(shù)。替我們完成的工作之一是從鏈接獲得也就是標(biāo)簽的屬性。實(shí)際上,可以讓站點(diǎn)上的所有鏈接都調(diào)用這個(gè)相同的代碼,這一行代碼都會(huì)自動(dòng)獲得相應(yīng)的值。 JavaScript關(guān)鍵字this始JS腳本能夠根據(jù)使用這個(gè)關(guān)鍵字的上下文將值傳遞給函數(shù)。我們先來(lái)看如下一個(gè)網(wǎng)頁(yè),在用戶(hù)單擊鏈接之后,彈出一個(gè)alert框,然后再轉(zhuǎn)到href屬性所指的網(wǎng)頁(yè)HTM...

    jayzou 評(píng)論0 收藏0
  • return/break語(yǔ)句妙用

    摘要:在里面,一般我們想讓程序在里面執(zhí)行到一半時(shí),經(jīng)過(guò)判斷或者完成某種操作后停止執(zhí)行后面的代碼,會(huì)用結(jié)束掉??梢栽谥虚g加入多個(gè)作為斷點(diǎn),控制邏輯的流程。 在JavaScript里面,一般我們想讓程序在function里面執(zhí)行到一半時(shí),經(jīng)過(guò)判斷或者完成某種操作后停止執(zhí)行后面的代碼,會(huì)用return結(jié)束掉function。 例如: //去除前后的空格function spaceWord(vRet...

    Batkid 評(píng)論0 收藏0
  • for in妙用

    摘要:前兩天在看司徒正美的框架設(shè)計(jì),看到了一個(gè)模擬方法的函數(shù),怎能如此之妙語(yǔ)句在可用于遍歷對(duì)象中的屬性與方法在上面的方法中,就用到了語(yǔ)句,其中的就相當(dāng)于中的就這樣,遍歷到的屬性就巧妙的到了里面。 前兩天在看司徒正美的《javascript框架設(shè)計(jì)》,看到了一個(gè)模擬Object.keys()方法的函數(shù),怎能如此之妙?。。?function keys(obj){ var a = []; ...

    陳偉 評(píng)論0 收藏0

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

0條評(píng)論

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