switch語(yǔ)句的妙用(必看篇)
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)?amp;&、||的表達(dá)式的返回值不是布爾類(lèi)型,它返回的是表達(dá)式中第一個(gè)為true、或第一個(gè)為false的那個(gè)值)
所以,只要你想得到的,只要符合規(guī)則,都能用switch實(shí)現(xiàn)!就是不知道這樣寫(xiě)的代碼好不好了!
以上就是小編為大家?guī)?lái)的switch語(yǔ)句的妙用(必看篇)全部?jī)?nèi)容了,希望大家多多支持腳本之家~
- javascript中if和switch,==和===詳解
- JavaScript中switch語(yǔ)句的用法詳解
- javascript的switch用法注意事項(xiàng)分析
- Javascript基礎(chǔ)教程之switch語(yǔ)句
- JavaScript中switch判斷容易犯錯(cuò)的一個(gè)細(xì)節(jié)
- js中switch case循環(huán)實(shí)例代碼
- js switch case default 的用法示例介紹
- js 中的switch表達(dá)式使用示例
- javascript 從if else 到 switch case 再到抽象
- JavaScript Switch 聲明
相關(guān)文章
uniapp小程序開(kāi)發(fā)組件封裝之自定義輪播圖效果
這篇文章主要介紹了uniapp小程序開(kāi)發(fā)組件封裝之自定義輪播圖,本文主要展示小程序端封裝輪播圖組件,使用的是uniapp進(jìn)行的開(kāi)發(fā),主要使用的是uniapp官網(wǎng)提供的swiper組件,需要的朋友可以參考下2023-02-02js字符串轉(zhuǎn)json對(duì)象的四種實(shí)現(xiàn)方法
使用ajax的開(kāi)發(fā)項(xiàng)目過(guò)程中,經(jīng)常需要將json格式的字符串返回到前端,前端解析成js對(duì)象(JSON),下面這篇文章主要給大家介紹了關(guān)于js字符串轉(zhuǎn)json對(duì)象的四種實(shí)現(xiàn)方法,需要的朋友可以參考下2023-04-04layui-table表復(fù)選框勾選的所有行數(shù)據(jù)獲取的例子
今天小編就為大家分享一篇layui-table表復(fù)選框勾選的所有行數(shù)據(jù)獲取的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JavaScript 實(shí)現(xiàn)打印,打印預(yù)覽,打印設(shè)置
這篇文章主要介紹了JavaScript 實(shí)現(xiàn)打印,打印預(yù)覽,打印設(shè)置的方法及示例分享,需要的朋友可以參考下2014-12-12Bootstrap框架結(jié)合jQuery仿百度換膚功能實(shí)例解析
這篇文章主要為大家詳細(xì)介紹了Bootstrap框架結(jié)合jQuery仿百度換膚功能實(shí)現(xiàn)代碼解析,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09分別用兩個(gè)函數(shù)實(shí)現(xiàn)的菜單
分別用兩個(gè)函數(shù)實(shí)現(xiàn)的菜單...2007-05-05HTML頁(yè)面定時(shí)跳轉(zhuǎn)方法解析(2種任選)
本文主要對(duì)HTML頁(yè)面定時(shí)跳轉(zhuǎn)進(jìn)行方法介紹:1、meta refresh 實(shí)現(xiàn)。2、JavaScript 實(shí)現(xiàn)。具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12BootStrap的alert提示框的關(guān)閉后再顯示怎么解決
這篇文章主要介紹了BootStrap的alert提示框的關(guān)閉后再顯示問(wèn)題的相關(guān)資料,需要的朋友可以參考下2016-05-05