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 相关文章推荐
JavaScript中setAttribute用法介绍
Jul 20 Javascript
JS简单实现元素复制示例附图
Nov 19 Javascript
浅析JavaScript中的类型和对象
Nov 29 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
Feb 22 Javascript
javascript比较两个日期相差天数的方法
Jul 24 Javascript
酷炫jQuery全屏3D焦点图动画效果
Mar 22 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
JQuery validate插件Remote用法大全
May 15 Javascript
AngularJS ng-change 指令的详解及简单实例
Jul 30 Javascript
JS获取input file绝对路径的方法(推荐)
Aug 02 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
Jul 13 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
Apr 16 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
PHP中的日期及时间
2006/11/23 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
Python读写Redis数据库操作示例
2014/03/18 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
网络优化专员求职信
2014/05/04 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
应聘教师自荐信
2015/03/26 职场文书
职工宿舍管理制度
2015/08/05 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android