区别在于Javascript开关语句

区别在于Javascript开关语句,javascript,switch-statement,Javascript,Switch Statement,前几天有人看了我的代码,说我的switch语句写得不正确,但我从来没有遇到过如何编写它的问题 我环顾了一下switch语句,事实上,我的switch语句并不是以同样的方式编写的,除了break的位置之外,它们是相似的 我的转换语句如下 switch(val){ case 'Add':{ }break; case 'Edit':{ }break; case 'Save':{ }break; case 'Cancel':{ }b

前几天有人看了我的代码,说我的switch语句写得不正确,但我从来没有遇到过如何编写它的问题

我环顾了一下switch语句,事实上,我的switch语句并不是以同样的方式编写的,除了break的位置之外,它们是相似的

我的转换语句如下

switch(val){
    case 'Add':{

    }break;
    case 'Edit':{

    }break;
    case 'Save':{

    }break;
    case 'Cancel':{

    }break;
    default:{

    }break;
}
我看了一眼 它显示了这样一种说法

const action = 'say_hello';
switch (action) {
  case 'say_hello': {
    let message = 'hello';
    console.log(message);
    break;
  }
  case 'say_hi': {
    let message = 'hi';
    console.log(message);
    break;
  }
  default: {
    console.log('Empty action received.');
    break;
  }
}
所以我的问题是,考虑到我是如何编写switch语句的,与提供的其他代码片段相比,我的编写方式会产生什么样的影响?从技术上讲,我的休息时间在哪里重要吗?{p>休息时间在哪里,而且完全是多余的,他们什么都不做。开关语法不需要它们。在你的情况下,他们所做的只是限制let语句的范围。除此之外,以下各项之间没有区别:

{
  foo;
}
bar;
以及:

两者都将一个接一个地执行这两个语句。

这些{}是完全多余的,它们实际上什么都不做。开关语法不需要它们。在你的情况下,他们所做的只是限制let语句的范围。除此之外,以下各项之间没有区别:

{
  foo;
}
bar;
以及:


两者都将一个接一个地执行这两个语句。

差异一点都不重要;两者的工作方式都是一样的。@Pointy,这只是开发者的偏好吗?是的,这是正确的。我更喜欢在下一个案例之前的中断,因为这样更容易看到没有中断。区别一点都不重要;两者的工作方式都是一样的。@Pointy,这只是开发人员的偏好吗?是的,这是正确的。我更喜欢在下一个案例之前立即中断,因为这样更容易看到没有中断。