我们开发过程中少不了会用到分支语句, 有时候可能为了更好扩展性和易维护性会考虑使用策略模式来代替分支语句, 不过每种语言都提供了对分支语句支持, 我们看一看下面 JavaScript 中的分支语句, 在分支语句我们必须通过 break 在输入条件满足我们定义一种情况后跳出循环.
如果我们忘记写 break 的话, 我们在 printSwitchedValue 输入 2 时候, 在满足条件后就会顺序执行下去, 打印出 two three default.
我们试图尝试其他方式来实现同分支语句相同作用还能避免犯分支语句同样错误, 我们重构一下代码, 我们用三目运算来一层一层实现.
这样虽然避免在分支语句发生一些问题, 但是我们看这样写的是有局限性, 无法写一些复杂的逻辑. 性能也应该是一个问题. 然后尝试其他途径来实现分支语句功能, 我们定义 values 对象, 然后通过输入类型, 我们在对象 values 找对应属性, 如果找到属性就对应返回值. 如果没有找到就返回默认值.
但是作为 developer 一个写 bug 的人我们难免会犯下面错误. 如果我们将某一个属性值 false null 或 undefined 就可以得到 default 默认值
来源: http://www.jianshu.com/p/284f30a1dd24