swtich/if...else的替代语句


Posted in Javascript onAugust 16, 2015

很多时候,if...else...有很多判断分支选项,就会见到:

if (animal === 'dog') {
 // TO DO 'dog'
} else if (animal === 'cat') {
 // TO DO 'cat' 
} else if (animal === 'bird') {
 // TO DO 'bird' 
} else if (animal === 'fish') {
 // TO DO 'fish' 
} else {
  // TO DO 'other' 
}

确实通俗易懂,且写起来好方便,一路都是else if,太多选项分支,就有人用swtich这样写了:

swtich (animal) {
  case 'dog':
    // TO DO 'dog'
    break;
  case 'cat':
    // TO DO 'cat' 
    break;
  case 'bird':
    // TO DO 'bird' 
    break;
  case 'fish':
    // TO DO 'fish'
    break;
   default:
    // TO DO 'other'
}

 但是,还是可以借鉴使用Object的hash思想:

function getAnimalName(name) {
  var animals = {
    'dog': function () {
      return 'dog';
    },
    'cat': function() {
      return 'cat';
    },
    'bird': function() {
      return 'bird';
    },
    'fish': function() {
      return 'fish';
    },
    'default': function() {
      return 'other';
    }
  };
  return (animals.name || animals.default)();
}
var animal = getAnimalName('dog');
console.log(animal);// 'dog'

以上就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
newxtree.js代码
Mar 13 Javascript
测试JavaScript字符串处理性能的代码
Dec 07 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
Jun 27 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
Sep 05 Javascript
js实现Form栏显示全格式时间时钟效果代码
Aug 19 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
Vue编写多地区选择组件
Aug 21 Javascript
使用nvm管理不同版本的node与npm的方法
Oct 31 Javascript
vue页面跳转实现页面缓存操作
Jul 22 Javascript
关于angular 8.1使用过程中的一些记录
Nov 25 Javascript
Moment的feature导致线上bug解决分析
Sep 23 Javascript
javascript数组去重的六种方法汇总
Aug 16 #Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 #Javascript
js时钟翻牌效果实现代码分享
Jul 31 #Javascript
js实现点击文本框显示日期选择器特效代码分享
May 21 #Javascript
jQuery树形下拉菜单特效代码分享
Aug 15 #Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
Aug 15 #Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
Nov 18 #Javascript
You might like
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
PHP新手上路(五)
2006/10/09 PHP
PHP 实现公历日期与农历日期的互转换
2017/09/13 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
JavaScript实现的使用键盘控制人物走动实例
2014/08/27 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
简单的JS时钟实例讲解
2016/01/13 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
对python调用RPC接口的实例详解
2019/01/03 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
python 如何对logging日志封装
2020/12/02 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
英国电子专家:maplin
2019/09/04 全球购物
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
高一作文之暖冬
2019/11/09 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
源码解读Spring-Integration执行过程
2021/06/11 Java/Android