dav*_*rey 3 javascript optimization case-statement switch-statement
是否可以合并cases共享作业并重复case未共享的作业,还是最好将每个作业分开?
用一个简单的例子来说明..case 0并且180两者都包含w = 330,因此它们已合并;每个分配的值x都不同,因此它们会重复进行x分配。
switch(window.orientation) {
case 0:
case 180:
w = 330;
//break
case 0:
x = '-180px';
//break
case -90:
case 90:
w = 480;
x = '0';
break;
case 180:
x = '-80px';
break;
}
Run Code Online (Sandbox Code Playgroud)
当要在语句中对每个元素执行多个操作时switch,最好不要重复相同的操作case两次。您可以通过总结同一case.
例如,如果你想A对case 0andB执行操作case 0,case 1那么你应该这样做:
switch(variable) {
case 0:
// operation A;
case 1:
// operation B;
break;
}
Run Code Online (Sandbox Code Playgroud)
这将执行操作A和Bon case 0,因为没有breakon case 0。
现在假设您写了这样的内容:
switch(variable) {
case 1:
x = 1;
break;
case 1:
x = 2;
break;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码最终会将值分配1给变量x。第二个case 1说法x = 2永远不会实现,因为break第一个说法case 1。
因此,如果您必须对case 0和执行不同的操作case 1,但它们共享某些操作,那么最好将重复某些代码行的情况分开,而不是编写case 1两次,因为这使您的代码更易于阅读并且速度稍快。
因此,在您的代码中,实现您想要的效果的最佳方法是:
switch(window.orientation) {
case 0:
x = '-180px';
w = 330;
break;
case 180:
x = '-80px';
w = 330;
break;
case -90:
case 90:
w = 480;
x = '0';
break;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6843 次 |
| 最近记录: |