广告
返回顶部
首页 > 资讯 > 精选 >JavaScript条件语句优化的技巧有哪些
  • 348
分享到

JavaScript条件语句优化的技巧有哪些

2023-07-02 15:07:53 348人浏览 独家记忆
摘要

这篇文章主要介绍了javascript条件语句优化的技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript条件语句优化的技巧有哪些文章都会有所收获,下面我们一起来看看吧。1、Array.i

这篇文章主要介绍了javascript条件语句优化的技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript条件语句优化的技巧有哪些文章都会有所收获,下面我们一起来看看吧。

1、Array.includes

来看下面的代码:

function test(animal) {  if (animal == 'lion' || animal == 'dog') {    return animal;  }  return '';}test('dog');

在test方法中包含一个 if 语句,用来判断传入的参数animal是不是lion或者dog。这么写从语法上是没问题的,但是如果 if 的判断条件中不只有两个动物,而是有四只动物。如果继续使用 || 与运算符来写的话,代码就会很难维护并且看起来非常不优雅:

if (animal == 'lion' || animal == 'dog' || animal == 'cow' || animal == 'cat') {    return animal;}

对于这种需要对同一个变量进行多次判断的条件语句,可以使用数组的 includes() 方法来优化,该方法可以用于确定数组中是否存在指定元素,如果存在指定的元素,就会返回  true ,如果不存在就会返回  false 。使用  includes()  来修改写上面的代码:

if (['dog', 'cat', 'cow', 'lion'].includes(animal)) {    return animal;}

这样代码看起来就简洁了很多,并且如果想继续增加其他的动物,只需在数组中继续增加元素即可。

2、Array.every

来看下面的代码:

const cars = [    { name: 'car1', color: 'red' },    { name: 'car2', color: 'blue' },    { name: 'car3', color: 'purple' }]; function test(cars) {    let isAllblue = true;      for (let c of cars) {        if (!isAllblue) break;        isAllblue = (c.color == 'blue');    }     return isAllblue;}test(cars);

JavaScript 中的数组提供了every()方法,该方法用于检查数组中所有元素是否满足给定条件。当每个数组元素都满足给定条件时会返回 true,否则会返回false。可以使用该方法来优化上面的代码:

const cars = [    { name: 'car1', color: 'red' },    { name: 'car2', color: 'blue' },    { name: 'car3', color: 'purple' }];  function test(cars) {   return cars.every(c => c.color == 'blue');}test(cars);

3、尽早 return

在 JavaScript 中,尽早 return 是一种将函数体减少else语句的简单方法。来看下面的代码:

function test(fruit, quantity) {  const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];  if (fruit) {    if (redFruits.includes(fruit)) {      console.log('red');      if (quantity > 10) {        console.log('big quantity');      }    }  } else {    throw new Error('No fruit!');  }}test(null); // error: No fruitstest('apple'); // redtest('apple', 20); // red, big quantity

来使用这种模式来优化上面的代码,可以在无效条件时尽早返回:

function test(fruit, quantity) {  const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];  if (!fruit) throw new Error('No fruit!');  if (redFruits.includes(fruit)) {    console.log('red');    if (quantity > 10) {      console.log('big quantity');    }  }}

可以进一步优化,如果 redFruits 中不包含fruit,就提前返回:

function test(fruit, quantity) {  const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];  if (!fruit) throw new Error('No fruit!');  if (!redFruits.includes(fruit)) return;  console.log('red');  if (quantity > 10) {    console.log('big quantity');  }}

可以看到,使用这种模式可以消除不必要的else语句,使得函数更加清晰和简洁。

4、三元运算符

对于上面例子中的函数,可以使用 JavaScript 的三元运算符来重构:

function IsRed(someObject) {    return typeof someObject !== 'object' || someObject.color !== 'Red' ? false : true;}

对于上面的三元表达式,还可以进行简化:

function IsRed(someObject) {    return !(typeof someObject !== 'object' || someObject.color !== 'Red');}

对于这种if...else块中都分别只有一个表达式的情况,就可以使用三元表达式来简化if...else语句。

5、switch...case

来看下面的代码:

function printCars(color) {    if (color === 'red') {      return ['Rcar1', 'Rcar2'];    }    else if (color === 'blue') {      return ['Bcar1', 'Bcar2'];    }    else if (color === 'purple') {      return ['Pcar1', 'Pcar2'];    }    return [];}

对于这种if的判断条件中都是针对一个变量进行判断的情况,可以使用switch...case来改写,这样代码看起来更有调理:

function printCars(color) {    switch (color) {        case 'red':            return ['Rcar1', 'Rcar2'];        case 'blue':            return ['Bcar1', 'Bcar2'];        case 'purple':            return ['Pcar1', 'Pcar2'];        default:            return [];    }}

6、Map/Object

对于上面的代码,可以使用对象来继续优化:

const carColor = {    red: ['Rcar1', 'Rcar2'],    blue: ['Bcar1', 'Bcar2'],    purple: ['Pcar1', 'Pcar2']};  function printcars(color) {    return carColor[color] || [];}console.log(printcars());       // []console.log(printcars('red'));  // ['Rcar1','Rcar2']console.log(printcars('blue')); // ['Bcar1','Bcar2']

也可以使用 Map 来实现相同的结果:

const carColor = new Map()    .set('red', ['Rcar1', 'Rcar2'])    .set('blue', ['Bcar1', 'Bcar2'])    .set('purple', ['Pcar1', 'Pcar2']);  function printcars(color) {    return carColor.get(color) || [];}console.log(printcars());       // []console.log(printcars('red'));  // ['Rcar1','Rcar2']console.log(printcars('blue')); // ['Bcar1','Bcar2']

7、默认函数参数和解构

来看下面的代码:

function check(flower, quantity) {    if (!flower) return;      const num = quantity || 1;     return `${num}朵${flower}`;} check('玫瑰');    // 1朵玫瑰check('茉莉', 2); // 2朵茉莉

可以使用函数默认参数来简化上面的代码:

function check(flower, quantity = 1) {    if (!flower) return;    return `${quantity}朵${flower}`;}check('玫瑰');    // 1朵玫瑰check('茉莉', 2); // 2朵茉莉

那如果flower参数是一个对象怎么办呢?来看下面的代码:

function check(flower) {    if (flower && flower.name) {        console.log(flower.name);    } else {        console.log('unknown');    }}check(undefined);  // unknowncheck({});  // unknowncheck({ name: '玫瑰', color: 'red' });  // 玫瑰

可以从对象中解构需要的属性:

function check({name} = {}) {    console.log (name || 'unknown');}  check(undefined);  // unknowncheck({});  // unknowncheck({ name: '玫瑰', color: 'red' });  // 玫瑰

在函数中需要flower对象中的name属性,可以使用{name}来解构该参数。除此之外,还可以用{}来作为参数的默认值,这样在check(undefined)时,也就是参数不是对象时,参数默认为一个空对象,否则就会报错,因为undefined中没有name属性。

8、逻辑与运算符

来看下面的代码:

if(a < 0 && b > 100 && c === 10) {  fn()}

对于逻辑与运算符,其左侧的条件如果为false,就会直接发生短路,不再继续往后执行;如果左侧的条件为true,就会返回其右侧的计算结果。所以,对于这种 if 中只有一行表达式的情况,可以使用逻辑与运算符来简化,其中左侧为判断条件,右侧是要执行的逻辑:

(a < 0 && b > 100 && c === 10) && fn();

关于“JavaScript条件语句优化的技巧有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JavaScript条件语句优化的技巧有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: JavaScript条件语句优化的技巧有哪些

本文链接: https://www.lsjlt.com/news/342687.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript条件语句优化的技巧有哪些
    这篇文章主要介绍了JavaScript条件语句优化的技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript条件语句优化的技巧有哪些文章都会有所收获,下面我们一起来看看吧。1、Array.i...
    99+
    2023-07-02
  • 8个JavaScript条件语句优化小技巧分享
    目录1、Array.includes2、Array.every3、尽早 return4、三元运算符5、switch...case6、Map/Object7、默认函数参数和解构8、逻辑...
    99+
    2022-11-13
  • 常用SQL语句优化技巧有哪些
    这篇文章将为大家详细讲解有关常用SQL语句优化技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQ...
    99+
    2022-10-18
  • javascript条件控制语句有哪些
    javascript中的条件控制语句有:1.if语句,基于不同的条件执行不同的操作;2.switch语句,多重条件判断语句;3.while语句,先判断后循环的条件控制语句;4.for语句,先判断后循环的条件控制语句;javascript中的...
    99+
    2022-10-23
  • JavaScript优化技巧有哪些
    这篇文章主要介绍“JavaScript优化技巧有哪些”,在日常操作中,相信很多人在JavaScript优化技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaSc...
    99+
    2022-10-19
  • JavaScript优化技巧都有哪些
    JavaScript优化技巧都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。作为开发人员,我们一直在寻找让我们的代码更快更好的方法。但在...
    99+
    2022-10-19
  • PostgreSQL条件语句有哪些
    这篇文章主要讲解了“PostgreSQL条件语句有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PostgreSQL条件语句有哪些”吧!一、IFDECL...
    99+
    2022-10-18
  • JavaScript条件判断的使用技巧有哪些
    本文小编为大家详细介绍“JavaScript条件判断的使用技巧有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript条件判断的使用技巧有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。假如我...
    99+
    2023-07-05
  • JavaScript性能优化技巧有哪些
    这篇文章主要为大家展示了“JavaScript性能优化技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript性能优化技巧有哪些”这篇文章吧...
    99+
    2022-10-19
  • JavaScript代码优化技巧有哪些
    这篇文章主要介绍“JavaScript代码优化技巧有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript代码优化技巧有哪些”文章能帮助大家解决问题。1. 使用扩展运算符解构对象和数...
    99+
    2023-07-05
  • java中有哪些条件语句
    java中有哪些条件语句?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式...
    99+
    2023-06-14
  • Python中条件语句有哪些
    小编给大家分享一下Python中条件语句有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!if"""条件语句:ifif...els...
    99+
    2023-06-26
  • MySQL优化SQL语句的技巧
    在面对不够优化、或者性能极差的SQL语句时,我们通常的想法是将重构这个SQL语句,让其查询的结果集和原来保持一样,并且希望SQL性能得以提升。而在重构SQL时,一般都有一定方法技巧可供参考,本文将介绍如何通过这些技巧...
    99+
    2022-05-24
    MySQL 优化 mysql sql语句 mysql 优化sql语句
  • 实用的JavaScript优化小技巧有哪些
    这篇文章主要为大家展示了“实用的JavaScript优化小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“实用的JavaScript优化小技巧有哪些”这...
    99+
    2022-10-19
  • Python条件语句的写法有哪些
    本篇内容介绍了“Python条件语句的写法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0. 原代码这是一段非常简单的通过年龄判断一个...
    99+
    2023-06-01
  • java判断条件语句有哪些
    java中的判断条件语句有:1.if语句,基于不同的条件执行不同的操作;2.switch语句,多重条件判断语句;java中的判断条件语句有以下几种if语句java中if语句是的作用是基于不同的条件执行不同的操作。int i = 95;if ...
    99+
    2022-10-08
  • Python条件语句写法有哪些
    本篇内容主要讲解“Python条件语句写法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python条件语句写法有哪些”吧!0. 原代码这是一段非常简单的通过年龄判断一个人是否成年的代码,...
    99+
    2023-06-16
  • 优化SQL语句的技巧分享
    这篇文章给大家介绍优化SQL语句的技巧分享,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。建立索引不是建的越多越好,原则是:第一:一个表的索引不是越多越好,也没有一个具体的数字,根据以往...
    99+
    2022-10-18
  • mysql语句中有哪些查询技巧
    这篇文章给大家分享的是有关mysql语句中有哪些查询技巧的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql语句查询技巧:1、比较运算符能用 “=”就不用“<>”...
    99+
    2022-10-18
  • 优化MySQL的技巧有哪些
    这篇文章主要介绍优化MySQL的技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SQL执行慢的原因网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等硬件问题没有索引或者索引...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作