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 相关文章推荐
MooTools 页面滚动浮动层智能定位实现代码
Aug 23 Javascript
JavaScript面向对象设计二 构造函数模式
Dec 20 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
Dec 29 Javascript
JavaScript 事件入门知识
Apr 13 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
Dec 07 Javascript
js操作XML文件的实现方法兼容IE与FireFox
Jun 25 Javascript
jquery popupDialog 使用 加载jsp页面的方法
Oct 25 Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 Javascript
10道典型的JavaScript面试题
Mar 22 Javascript
原生js封装添加class,删除class的实例
Nov 06 Javascript
Node.js 实现抢票小工具 & 短信通知提醒功能
Oct 22 Javascript
JS实现电脑虚拟键盘打字测试
Jun 24 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编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
Mootools 1.2教程 函数
2009/09/15 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
python爬取m3u8连接的视频
2018/02/28 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
python实现共轭梯度法
2019/07/03 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
Python接口测试get请求过程详解
2020/02/28 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
Python 绘制可视化折线图
2020/07/22 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
幼儿园五一活动方案
2014/02/07 职场文书
关键在于落实心得体会
2014/09/03 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python