您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“JavaScript中的Switch語句怎么用”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
Switch
switch語句計算表達(dá)式并作為匹配大小寫的結(jié)果執(zhí)行代碼。 起初它看起來有點令人生畏,但基本語法類似于if語句。 它將始終使用switch(){}編寫,括號中包含要測試的表達(dá)式,以及包含要執(zhí)行的潛在代碼的花括號。
下面是一個帶有兩個case語句的switch語句和一個稱為default的回退的示例。
switch (expression) { case x: // execute case x code block break; case y: // execute case y code block break; default: // execute default code block }
遵循上面代碼塊的邏輯,這是將要發(fā)生的事件序列:
表達(dá)式被評估
第一個case,x將針對表達(dá)式進(jìn)行測試。如果匹配,則代碼將執(zhí)行,break關(guān)鍵字將結(jié)束該switch塊。
如果它不匹配,x將跳過,y并將針對表達(dá)式測試案例。如果y匹配表達(dá)式,代碼將執(zhí)行并退出switch塊。
如果所有情況都不匹配,則default代碼塊將運行。
讓我們按照上面的語法制作一個switch語句的工作示例。 在此代碼塊中,我們將使用新的Date()方法找到一周中的當(dāng)前日期,并使用getDay()來打印與當(dāng)天相對應(yīng)的數(shù)字。 1代表星期一,一直代表7代表星期日。 我們將從設(shè)置變量開始。
const day = new Date().getDay();
使用switch,我們將在一周中的每一天向控制臺發(fā)送消息。程序?qū)磸纳系较碌捻樞蜻\行以查找匹配項,一旦找到一個,該break命令將停止該switch塊繼續(xù)評估語句。
week.js
// Set the current day of the week to a variable, with 1 being Monday and 7 being Sundayconst day = new Date().getDay();switch (day) { case 1: console.log("Happy Monday!"); break; case 2: console.log("It's Tuesday. You got this!"); break; case 3: console.log("Hump day already!"); break; case 4: console.log("Just one more day 'til the weekend!"); break; case 5: console.log("Happy Friday!"); break; case 6: console.log("Have a wonderful Saturday!"); break; case 7: console.log("It's Sunday, time to relax!"); break; default: console.log("Something went horribly wrong...");}
Output'Just one more day 'til the weekend!'
此代碼在星期四進(jìn)行了測試,對應(yīng)于4,因此控制臺輸出為Just one more day 'til the weekend!。根據(jù)您測試代碼的星期幾,您的輸出會有所不同。我們default在最后包含一個塊以便在出現(xiàn)錯誤時運行,在這種情況下不應(yīng)該發(fā)生,因為一周只有7天。例如,我們也可能只有周一到周五的打印結(jié)果,并且該default塊可能在周末也有相同的信息。
如果我們在每個語句中省略了break關(guān)鍵字,則其他case語句都不會被評估為true,但程序?qū)⒗^續(xù)檢查直到它到達(dá)結(jié)尾。 為了使我們的程序更快,更高效,我們包括break。
Switch Ranges
在某種情況下,您需要評估switch塊中的一系列值,而不是像上面示例中的單個值。 我們可以通過將表達(dá)式設(shè)置為true并在每個case語句中執(zhí)行操作來完成此操作。
為了使這更容易理解,我們制作了一個簡單的評分應(yīng)用程序,它將獲得一個數(shù)字分?jǐn)?shù)并將其轉(zhuǎn)換為字母等級,具有以下要求。
● 等級90及以上是A
● 等級80到89是B
● 等級70到79是C
● 等級60到69是D
● 等級59或以下是F
現(xiàn)在我們可以將其寫為switch語句。 由于我們正在檢查范圍,因此我們將在每種情況下執(zhí)行操作以檢查每個表達(dá)式是否正在評估為true,然后在滿足true要求后突破語句。
grades.js
// Set the student's gradeconst grade = 87;switch (true) { // If score is 90 or greater case grade >= 90: console.log("A"); break; // If score is 80 or greater case grade >= 80: console.log("B"); break; // If score is 70 or greater case grade >= 70: console.log("C"); break; // If score is 60 or greater case grade >= 60: console.log("D"); break; // Anything 59 or below is failing default: console.log("F");}
Output'B'
在此示例中,要計算的括號中的表達(dá)式為true。 這意味著任何評估為true的情況都是匹配的。
就像使用else一樣,switch從上到下進(jìn)行評估,并接受第一個真正的匹配。 因此,即使我們的等級變量為87,因此對于C和D也評估為真,第一個匹配是B,它將是輸出。
Multiple Cases
您可能會遇到多個case應(yīng)具有相同輸出的代碼。 為了實現(xiàn)這一點,您可以為每個代碼塊使用多個case。
為了測試這個,我們將制作一個小的應(yīng)用程序,將當(dāng)前月份與適當(dāng)?shù)募竟?jié)相匹配。 首先,我們將使用新的Date()方法查找與當(dāng)前月份對應(yīng)的數(shù)字,并將其應(yīng)用于月份變量。
為簡單起見,我們的應(yīng)用程序?qū)⑤敵鼍哂幸韵乱?guī)格的四季:
● 冬季:一月,二月和三月
● 春天:四月,五月和六月
● 夏季:七月,八月和九月
● 秋天:十月,十一月和十二月
以下是我們的代碼。
seasons.js
// Get number corresponding to the current month, with 0 being January and 11 being Decemberconst month = new Date().getMonth();switch (month) { // January, February, March case 0: case 1: case 2: console.log("Winter"); break; // April, May, June case 3: case 4: case 5: console.log("Spring"); break; // July, August, September case 6: case 7: case 8: console.log("Summer"); break; // October, November, December case 9: case 10: case 11: console.log("Autumn"); break; default: console.log("Something went wrong."); }
當(dāng)我們運行代碼時,我們將根據(jù)上面的規(guī)范接收識別當(dāng)前季節(jié)的輸出。
OutputSummer
出版時的當(dāng)月是8,這與“夏季”季節(jié)產(chǎn)出的一個case陳述相對應(yīng)。
“JavaScript中的Switch語句怎么用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。