How do you have a NaN case in a switch statement?

后端 未结 4 1510
滥情空心
滥情空心 2021-02-04 12:20

Since NaN === NaN evaluates to false, is it possible to add a NaN case to a switch statement?

For example, let\'s say

4条回答
  •  耶瑟儿~
    2021-02-04 12:21

    You could do this (jsFiddle):

    var x = "test";
    switch (isNaN(x) || x)
    {
        case true:
          alert("IsNaN!") 
          break; 
        case 1: 
          alert("1"); 
          break; 
        case 2: 
          alert("2"); 
          break; 
        case 4: 
          alert("4"); 
          break; 
        default: 
          alert("default"); 
          break; 
    }
    

    Or if you also want to validate string containing a number (jsFiddle):

    var x = "1";
    switch (isNaN(x) || parseInt(x))
    {
        case true:
          alert("IsNaN!") 
          break; 
        case 1: 
          alert("1"); 
          break; 
        case 2: 
          alert("2"); 
          break; 
        case 4: 
          alert("4"); 
          break; 
        default: 
          alert("default"); 
          break; 
    }
    

提交回复
热议问题