Javascript - switch 仅适用于字符串

Javascript - switch is for strings only?

本文关键字:适用于 字符串 switch Javascript      更新时间:2023-09-26

我不确定我是否可以仅对字符串使用 switch,或者我可以将其用于数字、布尔值或事件。

switch()可用于比较任何类型的:字符串,对象,数字。
需要注意的重要一点是,switch()使用严格的类型比较:===

例如:

比较字符串

var a = '1';
switch (a) {
  case 1:
    console.log(1); // '1' === 1 returns false, no match
    break;
  default:
    console.log('No match'); // will print 'No match'
}

比较对象

var a = 1;
switch (a.constructor) {
   case Number:
     console.log('number'); // prints 'number'
     break;
   case String:
     console.log('string');
     break;
   default:
     console.log('no match');
}

不确定我是否可以仅对字符串使用开关

不,根据规范,它应该只是一个有效的表达式

看这个演示,

此代码提醒right

var a =1;
var b = 2;
switch(a+b)
{
  case 1:
     alert("wrong");
  break;
  case 2:
     alert("wrong");
  break;
  case 3:
     alert("right");
  break;
  default:
     alert("wrong");
  break;
}