簡體   English   中英

switch(true)與if(true)不返回相同(JavaScript)

[英]switch(true) vs. if(true) doesn't return the same (JavaScript)

我正在編寫一個單擊按鈕的功能。 有很多不同的按鈕,所以我想使用switch(true)語句而不是一系列if...else if語句。

有幾個按鈕用於數字,我將數字放在<button>標簽的value屬性中。 但是,測試這兩個函數會產生不同的結果。

switch(true) {
    case (Number(button.value)):
        console.log('thats a number');
        break;
    default:
        console.log('NaN');
        break;
}

if(Number(button.value)) {
    console.log('thats a number');
} else {
    console.log('NaN');
}

有人可以解釋一下原因嗎? 我已經徹底測試了,沒有到達任何地方,並且覺得它必須在switchif語句處理方式上有一些技術差異。

switch語句使用嚴格相等性檢查給定條件=== ,而if取一個轉換為boolean值的值進行檢查。

你在switch中獲得的是什么

true === Number(button.value)

那個檢查永遠不會成true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM