首頁 > web前端 > js教程 > 主體

可以在 JavaScript 的 Switch Case 語句中使用表達式嗎?

Linda Hamilton
發布: 2024-10-31 20:27:02
原創
197 人瀏覽過

Can You Use Expressions in Switch Case Statements in JavaScript?

Switch Case 語句中的表達式求值

在程式設計中寫switch 語句時,您可能會遇到希望在case 子句中使用表達式的情況而不是固定值。雖然 if 語句很容易容納這類表達式,但在這種情況下,人們會擔心 switch 語句的潛在效率。

考慮以下 JavaScript 程式碼:

<code class="javascript">function reward(amount) {
    var $reward = $("#reward");
    switch (amount) {
        case (amount >= 7500 && amount < 10000):
            $reward.text("Play Station 3");
            break;
        case (amount >= 10000 && amount < 15000):
            $reward.text("XBOX 360");
            break;
        case (amount >= 15000):
            $reward.text("iMac");
            break;
        default:
            $reward.text("No reward");
            break;
    }
}</code>
登入後複製

在此範例中,我們嘗試評估case 子句中的表達式。然而,我們面臨一個障礙,因為表達式只產生布林值,而我們要比較的金額值是一個數字。這種不匹配會導致 case 子句無法正確觸發。

一個可行的解決方案是採用替代語法:

<code class="javascript">switch (true) {
  case (amount >= 7500 && amount < 10000):
    // Code
    break;
  case (amount >= 10000 && amount < 15000):
    // Code
    break;
  // etc.
}</code>
登入後複製

透過引入 true 標識符,我們有效地將表達式求值轉換為比較與布林值 true。當 case 子句中的表達式計算結果為 true 時,該子句中的程式碼將執行。

雖然這種技術看起來有點不傳統,但它規避了直接比較 case 子句中的表達式時遇到的限制。因此,您可以實現所需的行為,同時保持 switch 語句的效率優勢。

以上是可以在 JavaScript 的 Switch Case 語句中使用表達式嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板