在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':
一旦被评估。