JavaScript 中基于表达式的 Switch Case
在 JavaScript 中,switch-case 语句提供了一种便捷的方法来根据特定的情况处理多种情况价值。然而,传统的 switch-case 语句需要比较字符串或整数值。在某些情况下,可能需要使用在比较过程中求值的表达式。
遇到的问题
遇到挑战的用户描述了一个这样的场景尝试在 switch-case 语句中使用表达式时:
<code class="javascript">switch (amount) { case (amount >= 7500 && amount < 10000): // Code break; // Other cases default: // Default code }
但是,此代码导致了意外行为,从而引发了是否可以在 switch-case 语句中使用表达式的问题。
解决问题
问题是由于 amount 变量是数字,而 case 子句中的表达式计算为布尔值(即 true 或 false) )。因此,值永远不会匹配,导致 case 子句中的代码永远不会执行。
要解决此问题,一种方法是将表达式包含在 true 语句中:
<code class="javascript">switch (true) { case (amount >= 7500 && amount < 10000): // Code break; // Other cases default: // Default code }</code>
这是有效的,因为正在比较的值现在是布尔值 true。因此,将执行第一个 case 子句中表达式为 true 的代码。
注意事项
虽然此技术允许在 switch- 中使用表达式, case 语句,应谨慎使用。对于某些场景,if-else 语句可能更简洁、更容易阅读。最终,选择 switch-case 语句还是 if-else 语句取决于代码的具体要求。
以上是可以在 JavaScript Switch-Case 语句中使用表达式吗?的详细内容。更多信息请关注PHP中文网其他相关文章!