美文网首页
2020-07-23

2020-07-23

作者: corners_summer | 来源:发表于2020-07-28 19:11 被阅读0次

更好的Javascript条件语句实现(一)

  1. 相比switch,Map / Object 也许会是更好的选择
    例如,我们想要根据数字打印出对应的文字:
function test(num) {
    switch(num) {
         case 0:
              return 'yellow';
         case 1:
              return 'orange';
         case 2:
              return 'red';
         case 3:
              return 'blue'
         default:
              return 'black'
    }
}

以上代码没有什么错,用在日常开发也不会有问题,但是,它或许有点冗长。
我们可以用Map实现同样的效果,并且代码看上去更简洁:

// Map 是es6引入的新的对象类型,允许存放键值对;

const color = newMap()
.set(0,'yellow')
.set(1,'orange')
.set(2,'red')
.set(3,'blue')

function test(num) {
  return color.get(num) || 'black';
}

或着,我们也可以用对象字面量(Object)来实现:

const color = {
    0: 'yellow',
    1: 'orange',
    2: 'red',
    3: 'blue'
};
function test(num) {
  return color[num] || 'black';
}
  1. 使用 Array.includes 来处理多重条件
    例如:
function test(fruit) {
   if(fruit == 'lemon' || fruit == 'banana' || fruit == 'pear') {
      console.log('黄颜色的水果')
   }
}

黄颜色的水果有很多:orange(橘子) / lemon(柠檬) / banana(香蕉) / mango(芒果)
/ grapefruit(柚子) / pear(梨) / pineapple(菠萝)等;
那我们如果想要匹配更多的黄颜色的水果,如果用 || 的话就还挺麻烦的,我们可以把想要匹配的水果提取到一个数组里,用Array.includes来处理,这样也会使得代码看起来更整洁;

function test(fruit) {
   const yellowFruits = ['orange', 'lemon', 'banana', 'mango', 'grapefruit', 'pear', 'pineapple'];
   if (yellowFruits.includes(fruit)) {
      console.log('黄颜色的水果:',fruit);
   }
}
  1. 使用函数默认参数
    在 JavaScript 中我们经常需要检查 null / undefined 并赋予默认值:
function test(food, num) {
  if (!food) return;
  const n = num || 1; // 如果没有num,默认为 1
  console.log(`我有 ${n} ${food}!`);
}
//测试结果
test('apple',2); // I have 2 apple!
test('apple'); // I have 1 apple!

我们可以通过函数的默认参数来去掉变量 n

function test(food, num = 1) { // 如果没有提供 quantity,默认为 1
    if (!food) return;
    console.log(`I have ${num} ${food}!`);
}
//测试结果
test('apple',2); // I have 1 apple!
test('apple'); // I have 2 apple!

相关文章

  • 2020-07-23 生产环境部署

    2020-07-23 生产环境部署 首先就是cookie问题

  • python--批处理--多进程

    2020-07-23 更新,增加线程自定义 初始

  • 心理学如何影响用户决策:吃瓜子效应

    心理学如何影响用户决策:吃瓜子效应 原木关注作者 2020-07-23 1 评论7702 浏览17 收藏10 分钟...

  • 2020-07-23

    2020-07-23 日精进打卡 姓名:彭新 宁波蓝天白云供应链管理有限公司 【日精进打卡第868天】 【知学习】...

  • 20200723宽基指数估值表

    估值日期:2020-07-23 ​ 颜色说明: 1、红色:说明当前指数估值比较高,不建议童鞋们去购买红色背景的相关...

  • 那些“月入十万”的自媒体人,你们还好吗?

    还在坚持写字的科技不谓侠2020-07-23 1 就像上知乎的朋友,总给人一种人均985本硕、人均年薪百万的错觉。...

  • 2020-07-23

    2020-07-23 我的目标是儿子今年的高考成绩超出预期,考取心仪的南京大学物理专业!我愿意成为那个榜样,带动更...

  • 喝酒聊天

    今晚喝酒了,白的,虽然也不是我喝… 2020-07-23 晚饭后葛弟弟问我想吃点儿啥,看那样子是要去商店整点吃的 ...

  • 经历过后收获的经验

    2020-07-23星期四 前语:不经历风雨怎么见彩虹,这首歌的歌词今天我才深深地理解它的真正含义。人生的每...

  • 今日复盘(Day179)-承诺

    2020-07-23 一、今日收获 按计划推进了备课内容,并陪伴了小朋友,此外完成了画笔记的作业,第一课的复习及作...

网友评论

      本文标题:2020-07-23

      本文链接:https://www.haomeiwen.com/subject/rgbclktx.html