在javascript switch语句中使用OR运算符

我在javascript中做一个switch语句:

switch($tp_type){ case 'ITP': $('#indv_tp_id').val(data); break; case 'CRP'||'COO'||'FOU': $('#jurd_tp_id').val(data); break; } 

但我认为如果我使用OR运算符它不起作用。 我如何在javascript中正确执行此操作? 如果我选择ITP,我会得到ITP。 但如果我选择COO,FOU或CRP,我总是得到第一个CRP。 请帮忙,谢谢!

你应该像这样重写它:

 case 'CRP': case 'COO': case 'FOU': $('#jurd_tp_id').val(data); break; 

您可以在switch参考中看到它。 这里描述了连续的case语句之间没有break的行为(称为“fall-through”):

与每个案例标签关联的可选break语句确保一旦执行匹配语句,程序就会断开switch,并在switch后的语句处继续执行。 如果省略break,程序将继续执行switch语句中的下一个语句

至于为什么你的版本仅适用于第一个项目( CRP ),这只是因为表达式'CRP'||'COO'||'FOU'评估为'CRP' (因为非空字符串在布尔上下文中评估为true )。 所以case语句等同于case 'CRP':一旦被评估。