1
139
你可以一直这样做
它起作用是因为
我想这有点“棘手”,但我觉得用它没什么错。一个简单的
|
2
11
关键词:
“如果我的任期,
http://jsfiddle.net/rufwork/upGH6/1/
|
3
9
这不是一个
这里有一些关于
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch |
4
4
好吧,你可以用英语表达
函数调用是表达式,所以让我们尝试一下:
如您所见,您可以同时使用函数表达式和函数定义。没关系。只有case子句中的表达式是要计算的表达式。这与您所做的相同,只是您没有返回一个与金额相同的值,而是一个真值或假值。在我的示例中,如果我的条件为真,则返回确切的数量,因此触发比较以匹配。
规格如下: https://tc39.github.io/ecma262/#sec-switch-statement 链接到es2016是因为它比1999年的旧es3 pdf更容易查找。但它一直是这样工作的,但这是一个鲜为人知的事实。
|
5
2
你也可以试试我最喜欢的一种结构:
|
6
1
首先,不是这样的
其次,切换速度不超过几个
第三,在处理javascript时,您不应该真的担心微小的性能优化。 |
7
1
switch表达式设置为true的解决方案之所以有效,不是因为true是一个常量,而是因为实际上可以与case表达式相等。 不是说必须为每个case表达式指定常量。 要支持我的回答,请参阅Douglas Crockford,Javascript The Good Parts(2008),第12页:
|
8
1
我的2美分: 理想情况下,switch(作为一个原则)应该计算为一个case分支,从而实现O(1)性能,并且case语句可以以任何方式重新排序(而不是遍历case),而无需更改编译器分支策略。 如果使用表达式(假设语言允许),那么理论上,它可以遵循多个分支。 编译器(除了那些能够智能地说出开发人员正在尝试做什么的编译器)将无法静态地优化分支策略,因此在理想情况下会失去其有效性。 例子:
{希望对糟糕的代码有评论} 在上面的示例中,编译器没有实际的方法进行静态优化,因此与if-else相比没有获得任何性能优势。 唯一的部分是,它“可能”看起来更清洁的开发商,但实际上可能是中断的情况下,额外的条件。 |
Flo · 分组依据中的SQL大小写 2 年前 |
Moeez · 不提供正确结果的case计数 6 年前 |
StevenC · 填充维度表时PL/SQL FOR循环错误 6 年前 |
katy89 · 在SQL Server中使用嵌套CASE语句 6 年前 |
A.Papa · 组中的一个ID满足所有相同ID的重复值条件,如果 6 年前 |
noober · bash脚本-case语句未正确计算字符串(值) 6 年前 |
Ugur · 使用sql查询比较两列并仅选择一列 6 年前 |
John Perez · 在Mysql中统一具有不同日期格式的字段 6 年前 |