switch case 能传多个值吗?

redirect(val1,val2){
                switch(val1,val2){
                    case 1,1:
                        this.$router.push({ path: '/main/putStorage'});
                        break;
                }

            }
            
js  switch case能传输多个值吗?查文档没找到。试了一下是可以的。有哪位大神可以详细讲讲?
阅读 28.7k
4 个回答

可以
不过多个分支语句不要加break

switch(v){

case 1:
case 2:
    doWork();
    break;

switch/case只看一个值. 语法正确不代表代码做了你想要它做的事, 你的代码中只是使用了一个逗号表达式, 并不"可以".

你这样处理是有问题的,

    switch(1,2){
        case 1,2:
        alert(124);
        case 2,2:
        alert(224);
    } 

switch (expression) 语句执行时,先计算expression,(1,2)会得到2,匹配2。后面case中的expression也一样,上面的两个case都会执行。最好的办法是放在switch外面处理val1和val2的判断

语法是没问题的。逗号的意思是,它把以逗号分开的表达式依次执行一遍,然后返回最右边的表达式的值。换句话说,你这么写,其实 switch 的是 val2。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题