曾经有人说过,真正好的程序是没有if..else的,当然switch还不如if..else。JS规范里面是禁止使用switch的。
命令对象(command object)就完美的解决了这个问题。
引用一篇国外的博客提到的:
JavaScript 有着良好的控制流程语句,这些语句往往用花括号包裹着。不过有个例外:switch … case 语句。switch … case 的奇怪之处在于你必须在每个 case 末尾加上关键字 break,以防止流程控制权穿越进入下一个 case 语句中。穿越是指让多条 case 执行的手法,当未遇见预期的 break 时,控制权就自动交到下一句 case 手中。然而,就如同分号与花括号一样,你很有可能会在不经意之间忘了写 break,当这发生时,后期的错误排查就比较痛苦,因为语句本身是没错的。因此,配对地写 case … break 是个好习惯。
我们通常讲,JavaScript 有着优雅的对象字面量与顶级函数,这些都使得特定的方法查询变的非常简单。为方法查询所创建的对象,我们称之为 活动对象(action object) 或 命令对象(command object),它被运用在许多软件设计模式中,包括强大的而有用的命令模式。
实例:
// switch 方法 function testSwitch(name) { switch (name) { case '1': return 'hack'; break; case '2': return 'slash'; break; case '3': return 'run'; break; default: return false; break; } } // 使用命令对象 function testFn(name) { var names = { '1': function() { return 'hack'; }, '2': function() { return 'slash'; }, '3': function() { return 'run'; } }; if (typeof names[name] !== 'function') { return false; } return names[name](); } // 测试结果 var result1 = testSwitch('1'); var result2 = testFn('2'); console.info(result1, result2);
rank ▲ ✰ vote url 62 370 162 300 url Python中用什么代替switch语句? 我想写一个函数,实现输入一个值对应输出另一个值. 在其他语言我可以用switch或者case语句,但是Python里没有switch.Python里如何解决这个问题? 你可以用一个字典: def f(x): return { 'a': 1,
本文向大家介绍如何在Switch命令中使用PowerShell Break语句?,包括了如何在Switch命令中使用PowerShell Break语句?的使用技巧和注意事项,需要的朋友参考一下 在“切换”命令中,当传递单个值并且如果它匹配条件时,则循环自动退出,但是当传递多个值并且如果值匹配第一个条件时并且如果要终止循环,则可以使用Break声明。下面给出一个例子。 示例 输出结果 您会在上面的
问题内容: 我有一个字符串数组,每个字符串包含3个字母。每3个字母(每个元素)对应一个唯一字母。我需要从字符串数组创建一个char数组。 我能想到的唯一方法是遍历字符串数组中的每个元素,并使用一个长的switch语句来确定其关联的单个字符。 还有什么其他方法可以实现? 问题答案: 如果是映射/查找,那么通常地图/词典可以解决您的问题。C#中的此类结构示例: 如果有这样的映射,则只需从映射中查找字母
switch 语句可以替代多个 if 判断。 switch 语句为多分支选择的情况提供了一个更具描述性的方式。 语法 switch 语句有至少一个 case 代码块和一个可选的 default 代码块。 就像这样: switch(x) { case 'value1': // if (x === 'value1') ... [break] case 'value2':
使用 switch 语句可以更简洁地实现 if ~ else if 的结构。格式如下。 switch(base_expression) { casecondition_expression1: casecondition_expression2: : : default: : : } 写在 base_expression 位置的表达式会在刚开始时被求值。switch 后面的语句块中的 case
问题内容: 我想用Python编写一个函数,该函数根据输入索引的值返回不同的固定值。 在其他语言中,我将使用语句,但是Python似乎没有语句。在这种情况下,推荐的Python解决方案是什么? 问题答案: 你可以使用字典:
null 代码如下所示: 和我想提高的班级: 我该怎么办?每个字段都在使用,但每个触发器都在使用。另外,这种情况有点特殊(OnFinalMethod需要参数)。基于上面的文章,我尝试重构这段代码,但没有成功。 你知道吗?:)
null 但这也不起作用。我如何添加'X'作为这个switch语句的默认值,什么可以帮助我防止自己再次犯这个错误?