整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          JavaScript中的switch語句

          JavaScript中的switch語句

          avaScript語言中的條件語句,除了if 語句,還有switch 語句。switch 常用于根據(jù)不同的條件執(zhí)行不同的操作。雖然它和 if 語句都是用來判斷條件的語句,但是它們之間還是有不同。

          switch的語法

          語法如下所示:

          switch(expression) {
              case 變量x:
              // 語句1代碼塊
              case 變量y:
              // 語句2代碼塊
              case 變量z:
              // 語句3代碼塊
              break;
              default:
              // 代碼塊
          }
          

          語法解釋:表達式值計算一次,然后我們依次將表達式的值與每一種 case 情況的值進行比較,如果匹配,就會執(zhí)行與 case 對應(yīng)的相關(guān)代碼塊。

          執(zhí)行原理:變量 expression 的值與 case 的值進行比較,比如變量 expression 等于 case 變量 x,我們就執(zhí)行語句1的代碼塊,如果變量 expression 等于 case 變量 y 就執(zhí)行語句2的代碼塊,依次類推,如果都不符合就執(zhí)行 default 語句代碼塊。break 語言用于結(jié)束當前執(zhí)行的語句,default 表示默認的,在沒有符合選項的時候默認選擇。

          示例:

          使用 switch 語句來看判斷今天是星期幾,并輸出對應(yīng)時間。例如在一個 HTML 文件中,寫入下列代碼:

          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>JS_俠課島(9xkd.com)</title>
          </head>
          <body>
            <div>
              <p id="date"></p>
            </div>
            <script>
              var day;
              var d=new Date().getDay();  
              switch(d) {
                  case 0:
                    day="星期天";
                    break;
                  case 1:
                    day="星期一";
                    break;
                  case 2:
                    day="星期二";
                    break;
                  case 3:
                    day="星期三";
                    break;
                  case 4:
                    day="星期四";
                    break;
                  case 5:
                    day="星期五";
                    break;
                  case 6:
                    day="星期六";
                    break;
                  case 7:
                    day="星期天";
                    break;
              }
              document.getElementById("date").innerHTML=day;
              </script>
            </body>    
          </html>
          

          在瀏覽器中打開這個HTML文件,頁面會顯示:

          星期二
          

          我們來分析一下 <script> 標簽中的 JavaScript 代碼,變量 d 是我們獲取到的當天的星期天數(shù)(我寫這個文章的時候是星期二),getDay() 方法會返回與星期相對應(yīng)的數(shù)字,例如星期一返回1、星期二返回2,以此類推。

          然后我們將這個變量 d 作為switch 語句的表達式值,將它與 case 后面的值匹配,如果表達式等于某個 case 后面的值,則執(zhí)行響應(yīng)的代碼。例如上述代碼中,變量 d 的值為2,那么就會匹配到 case 2,所對應(yīng)的代碼就是day="星期二";,所以輸出結(jié)果為星期二。后面還有一個break 語句,這個語句的作用就是跳出 switch 語句,避免同時執(zhí)行多個case。

          default 關(guān)鍵詞

          default 關(guān)鍵詞規(guī)定 case 匹配不存在時所做的事情。

          示例:

          例如我們看下面這段代碼:

          var level="P";
          switch(level){
              case "A":
                  console.log("第一類");
                  break;
              case "B":
                  console.log("第二類");
                  break;
              case "C":
                  console.log("第三類");
                  break;
              case "D":
                  console.log("第四類");
                  break;
              default:
                  console.log("其他");
          }
          

          輸出:

          其他
          

          上述代碼中,如果 level 的值不滿足任何 case 的值,則會匹配到 default。代碼中 level 的值為 P,而 case 語句中的值只有A、B、C、D,此時就會匹配到 default 語句,執(zhí)行 default 語句下面的代碼。

          break 關(guān)鍵詞用于跳出 switch 代碼塊。使用 break 能夠節(jié)省大量執(zhí)行時間,因為它會忽略 switch 代碼塊中的其他代碼的執(zhí)行。

          switch 與 if 的對比

          關(guān)于條件分支 switch 和 if 兩者之間的區(qū)別和關(guān)聯(lián),我們可以通過下面這個表格進行簡單直觀的認識:

          switchif判斷條件等值判斷等值判斷和區(qū)間判斷結(jié)束語句break跳出執(zhí)行一個if后自動結(jié)束默認和否則語句default可以放在任何位置else只能放在最后

          • if 語句表達式的結(jié)果是 boolean 布爾類型,常用于區(qū)間判斷。
          • switch 表達式類型不能是 boolean 布爾類型,可能是 byte、int、char、string、枚舉,常用于等值判斷。

          注意一般能用 switch 語句實現(xiàn)的就一定能使用 if 語句來實現(xiàn),但是反過來卻是不一定的,如果區(qū)間范圍就采用 if,如果等值判斷就使用 switch。

          效率問題:

          • switch case 會生成一個跳轉(zhuǎn)表來指示實際的 case 分支地址。
          • switch case 只能處理 case 為常量的情況。
          • if else 需要遍歷條件分支知道命中條件。
          • if else 能應(yīng)用于更多的場所,比較靈活,但是必須遍歷所有可能的值。

          動手小練習

          1. 寫一個小程序,讓用戶輸入月份,提示相應(yīng)的季節(jié),如果都不在指定的月份中則輸出"請正確輸入月份"。
          2. 熟記 switch 和 if 的基本內(nèi)容以及兩者間的關(guān)聯(lián)與區(qū)別。

          4 種方式可以在 HTML 中引入 CSS。其中有 2 種方式是在 HTML 文件中直接添加 CSS 代碼,另外兩種是引入 外部 CSS 文件。下面我們就來看看這些方式和它們的優(yōu)缺點。

          內(nèi)聯(lián)方式

          內(nèi)聯(lián)方式指的是直接在 HTML 標簽中的 style 屬性中添加 CSS。

          示例:

          <div style="background: red"></div>
          

          這通常是個很糟糕的書寫方式,它只能改變當前標簽的樣式,如果想要多個 <div> 擁有相同的樣式,你不得不重復地為每個 <div> 添加相同的樣式,如果想要修改一種樣式,又不得不修改所有的 style 中的代碼。很顯然,內(nèi)聯(lián)方式引入 CSS 代碼會導致 HTML 代碼變得冗長,且使得網(wǎng)頁難以維護。

          嵌入方式

          嵌入方式指的是在 HTML 頭部中的 <style> 標簽下書寫 CSS 代碼。

          示例:

          <head>
           <style>
           .content {
           background: red;
           }
           </style>
          </head>
          

          嵌入方式的 CSS 只對當前的網(wǎng)頁有效。因為 CSS 代碼是在 HTML 文件中,所以會使得代碼比較集中,當我們寫模板網(wǎng)頁時這通常比較有利。因為查看模板代碼的人可以一目了然地查看 HTML 結(jié)構(gòu)和 CSS 樣式。因為嵌入的 CSS 只對當前頁面有效,所以當多個頁面需要引入相同的 CSS 代碼時,這樣寫會導致代碼冗余,也不利于維護。

          鏈接方式

          鏈接方式指的是使用 HTML 頭部的 <head> 標簽引入外部的 CSS 文件。

          示例:

          <head>
           <link rel="stylesheet" type="text/css" href="style.css">
          </head>
          

          這是最常見的也是最推薦的引入 CSS 的方式。使用這種方式,所有的 CSS 代碼只存在于單獨的 CSS 文件中,所以具有良好的可維護性。并且所有的 CSS 代碼只存在于 CSS 文件中,CSS 文件會在第一次加載時引入,以后切換頁面時只需加載 HTML 文件即可。

          導入方式

          導入方式指的是使用 CSS 規(guī)則引入外部 CSS 文件。

          示例:

          <style>
           @import url(style.css);
          </style>
          

          比較鏈接方式和導入方式

          鏈接方式(下面用 link 代替)和導入方式(下面用 @import 代替)都是引入外部的 CSS 文件的方式,下面我們來比較這兩種方式,并且說明為什么不推薦使用 @import

          • link 屬于 HTML,通過 <link> 標簽中的 href 屬性來引入外部文件,而 @import 屬于 CSS,所以導入語句應(yīng)寫在 CSS 中,要注意的是導入語句應(yīng)寫在樣式表的開頭,否則無法正確導入外部文件;
          • @import 是 CSS2.1 才出現(xiàn)的概念,所以如果瀏覽器版本較低,無法正確導入外部樣式文件;
          • 當 HTML 文件被加載時,link 引用的文件會同時被加載,而 @import 引用的文件則會等頁面全部下載完畢再被加載;

          小結(jié):我們應(yīng)盡量使用 <link> 標簽導入外部 CSS 文件,避免或者少用使用其他三種方式。

          么是 HTML?


          HTML (Hypertext Markup Language)是標準標記語言,是 Web 瀏覽器顯示的基礎(chǔ)。 此外,CSS(Cascading Style Sheets)等技術(shù)以及JavaScript等腳本語言也支持這種技術(shù)。


          創(chuàng)建主頁時,首先使用 HTML 確定句子的結(jié)構(gòu)并標記它,然后設(shè)計要顯示的信息。 這是網(wǎng)頁的基礎(chǔ)。


          現(xiàn)在,讓我們仔細看看可以使用少量 CSS 代碼實現(xiàn)的技術(shù)。



          一種技術(shù)摘要,可以使用鮮為人知的短 HTML 代碼實現(xiàn)

          loading="lazy"屬性

          Web 性能改進技術(shù)之一是屬性,允許用戶延遲加載,直到滾動。 它還適用于嵌入 YouTube 視頻的 iframe 代碼和大尺寸圖像。loading="lazy"


          XHTML

          1

          <img src='image.jpg' loading='lazy' alt='代替テキスト'>



          發(fā)送電子郵件、電話或短信短信

          打開電子郵件創(chuàng)建頁面、直接撥打電話或發(fā)送短消息的技術(shù)。


          XHTML

          1

          2

          3

          4

          5

          6

          7

          8

          9

          10

          11

          <a href="mailto:{email}?subject={subject}&body={content}">

          Eメールを送信

          </a>


          <a href="tel:{phone}">

          お電話ください

          </a>


          <a href="sms:{phone}?body={content}">

          SMSショートメッセージを送信

          </a>



          確定列表順序的屬性strat

          start屬性允許您自由確定列表格式的數(shù)字。




          meter在元素中顯示數(shù)字

          meter元素允許您使用彩色滑塊顯示數(shù)字和數(shù)量。 不需要 JavaScript 或 CSS。




          HTML 本機搜索

          通過預先在表單輸入元素中指定一些數(shù)據(jù)列表,可以將其作為候選關(guān)鍵字顯示在輸入字段中的下拉列表中。




          Fieldset按元素對標簽進行分組

          fieldset元素允許您將 Web 窗體中的多個控件和標簽 () 組合在一起。label




          使用 window.opener 防止檢索原始窗口中的信息

          target="_blank在 中打開的頁面將允許您訪問原始頁面的 window.opener。 這可能會對安全性和性能產(chǎn)生負面影響,例如"原始窗口在知道之前已轉(zhuǎn)換到填充站點"。 為了防止這種情況,請包括 或 。rel="noopener"rel="noreferrer"


          1

          2

          3

          <a href="https://markodenic.com/" target="_blank" rel="noopener">

          參考ウェブサイト

          </a>



          base元素

          如果要在新選項卡中打開 HTML 文檔中的所有鏈接,可以使用元素。 在下面的示例中,兩個鏈接都在新的選項卡中打開。base




          防止傳真機緩存

          若要更新網(wǎng)站的傳真,您可以通過將其添加到文件名中來在瀏覽器中下載新版本。?v=2


          一種有效的技術(shù),尤其是在生產(chǎn)環(huán)境中,以確保用戶輸入新版本。


          XHTML

          1

          <link rel="icon" href="/favicon.ico?v=2" />



          spellcheck按屬性檢查拼寫

          可以決定是否檢查元素的拼寫錯誤的屬性。spellcheck




          顯示 HTML 滑塊

          input type="range"允許您使用滑塊調(diào)整數(shù)字。 所選數(shù)字可以顯示在 中。input type="number"




          僅通過 HTML 顯示手風琴

          details元素允許您創(chuàng)建僅 HTML 本機手風琴。




          mark標記中的文本突出顯示突出顯示

          mark標記允許您使用黃色標記突出顯示文本的一部分。




          下載文件具有屬性download

          URL 鏈接的屬性允許您直接下載文件,而不是將其移動到文件中。download


          XHTML

          1

          2

          3

          <a href='path/to/file' download>

          Download

          </a>



          webp使用文件格式

          使用".webp"作為圖像格式可以減小圖像大小并提高網(wǎng)站性能。


          XHTML

          1

          2

          3

          4

          5

          6

          7

          8

          9

          10

          11

          <picture>

          <!-- サポートされていたら.webp畫像を読み込む -->

          <source srcset="logo.webp" type="image/webp">


          <!--

                .webp畫像や<picture>タグが

                 ブラウザにサポートされていないときの

                 フォールバックとして

          -->

          <img src="logo.png" alt="logo">

          </picture>



          視頻視頻縮略圖視圖

          poster屬性允許您指定在加載視頻或按下"播放"按鈕之前顯示的圖像。


          XHTML

          1

          <video poster="path/to/image">



          type="search"在 中顯示取消標記

          在搜索框中使用時,將自動顯示"X"清除標記以取消。type="search"




          只有 HTML 可以實現(xiàn)的功能,我有很多。 我們計劃在未來添加和更新小技巧技術(shù)。


          主站蜘蛛池模板: 国产精品亚洲一区二区无码| 制服丝袜一区在线| 亚洲一区二区三区久久| 久久国产三级无码一区二区| 国产精品99精品一区二区三区| 久久精品无码一区二区WWW| 久久精品黄AA片一区二区三区| 亚洲AV乱码一区二区三区林ゆな| 国产精品女同一区二区久久| 无码日韩AV一区二区三区| 海角国精产品一区一区三区糖心| 伊人色综合网一区二区三区 | 中文字幕亚洲一区二区va在线| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久精品黄AA片一区二区三区 | 精品一区二区久久久久久久网站| 无码精品久久一区二区三区 | 亚洲国产韩国一区二区| 韩国福利一区二区美女视频| 色噜噜狠狠一区二区| 午夜AV内射一区二区三区红桃视| 免费无码毛片一区二区APP| 亚洲Av无码国产一区二区| 亚洲午夜精品一区二区麻豆| 国产情侣一区二区| 日本在线视频一区二区三区| 国产精品视频免费一区二区三区| 天天看高清无码一区二区三区| 波多野结衣电影区一区二区三区| 人妻无码一区二区三区| 国产色情一区二区三区在线播放| 久久久一区二区三区| 国产免费一区二区三区| 亚洲国产激情一区二区三区 | 久久一区二区三区免费播放| 久久久久人妻一区二区三区| 亚洲AV无码一区二区三区鸳鸯影院| 秋霞电影网一区二区三区| 国产在线aaa片一区二区99| 亚洲中文字幕在线无码一区二区 | 精品人妻少妇一区二区三区|