我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript如何优化逻辑判断代码详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript如何优化逻辑判断代码详解

前言

我们日常使用到的逻辑判断语句有 if...else...、switch...case...、do...while...等。

在简单场景下,我们可能对这些语法的性能没有什么感觉,但当遇到复杂的业务场景时,如果处理不善,就会出现大量的逻辑嵌套,可读性差并且难以扩展。

千里之行始于足下,编写高可维护性和高质量的代码,我们就需要从细节处入手,我们今天主要讨论 JavaScript 中如何优化逻辑判断代码。

嵌套层级优化


function supply(fruit, quantity) {
    const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];
    // 条件 1: 水果存在
    if (fruit) {
        // 条件 2: 属于红色水果
        if (redFruits.includes(fruit)) {
            console.log('红色水果');
            // 条件 3: 水果数量大于 10 个
            if (quantity > 10) {
                console.log('数量大于 10 个');
            }
        }
    } else {
        throw new Error('没有水果啦!');
    }
}

通过上面这个例子,我们可以看到:判断流程中规中矩,符合现实世界的映射。但是,因代码层层嵌套,导致阅读和维护都存在困难。

如果传入了 fruit 参数,则每次执行都至少需要经过两步 if 判断,在性能上也存在问题。

我们来对上面的代码进行一下优化处理:


function supply(fruit, quantity) {
    const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];
    if (!fruit) throw new Error('没有水果啦');     // 条件 1: 当 fruit 无效时,提前处理错误
    if (!redFruits.includes(fruit)) return; // 条件 2: 当不是红色水果时,提前 return

    console.log('红色水果');

    // 条件 3: 水果数量大于 10 个
    if (quantity > 10) {
        console.log('数量大于 10 个');
    }
}

这里主要对嵌套层级做了优化,提前终止掉了不符合的条件,将三层嵌套减少到了一层,简化了代码结果结构,增强了可阅读性。

多条件分支的优化

相信我们很多人对下面这种代码不陌生吧?(想想刚开始写代码那会啊)


function pick(color) {
    // 根据颜色选择水果
    if (color === 'red') {
        return ['apple', 'strawberry'];
    } else if (color === 'yellow') {
        return ['banana', 'pineapple'];
    } else if (color === 'purple') {
        return ['grape', 'plum'];
    } else {
        return [];
    }
}

我们需要知道一点原则:if else 更适合于条件区间判断,而 switch case 更适合于具体枚举值的分支判断。

我们使用 switch...case...进行一下改写:


function pick(color) {
    // 根据颜色选择水果
    switch (color) {
        case 'red':
            return ['apple', 'strawberry'];
        case 'yellow':
            return ['banana', 'pineapple'];
        case 'purple':
            return ['grape', 'plum'];
        default:
            return [];
    }
}

switch...case... 优化之后的代码看上去格式整齐,思路很清晰,但还是很冗长。继续优化:

借助 Object 的 {key: value} 结构,我们可以在 Object 中枚举所有的情况,然后将 key 作为索引,直接通过 Object.key 或者 Object[key] 来获取内容:


const fruitColor = {
    red: ['apple', 'strawberry'],
    yellow: ['banana', 'pineapple'],
    purple: ['grape', 'plum'],
}
function pick(color) {
    return fruitColor[color] || [];
}

使用 Map 数据结构,真正的(key, value) 键值对结构:


const fruitColor = new Map()
    .set('red', ['apple', 'strawberry'])
    .set('yellow', ['banana', 'pineapple'])
    .set('purple', ['grape', 'plum']);

function pick(color) {
    return fruitColor.get(color) || [];
}

优化之后,代码更简洁、更容易扩展。

为了更好的可读性,还可以通过更加语义化的方式定义对象,然后使用 Array.filter 达到同样的效果:


const fruits = [
    {name: 'apple', color: 'red'},
    {name: 'strawberry', color: 'red'},
    {name: 'banana', color: 'yellow'},
    {name: 'pineapple', color: 'yellow'},
    {name: 'grape', color: 'purple'},
    {name: 'plum', color: 'purple'}
];

function pick(color) {
    return fruits.filter(f => f.color == color);
}

总结

上面使用的例子和手段都比较初级,但是其中的思想却值得我们细品,希望大家能够有所收获!

到此这篇关于JavaScript如何优化逻辑判断代码的文章就介绍到这了,更多相关JavaScript优化逻辑判断代码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript如何优化逻辑判断代码详解

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

下载Word文档

猜你喜欢

如何在JavaScript中优化逻辑判断

如何在JavaScript中优化逻辑判断?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。嵌套层级优化function supply(fruit, quantity) {
2023-06-15

如何通过 JavaScript 事件委托来简化代码逻辑?(JavaScript事件委托怎样简化代码逻辑)

在JavaScript开发中,代码的简洁性和可维护性是非常重要的。而事件委托就是一种能够有效地简化代码逻辑的技术。一、什么是JavaScript事件委托?事件委托,也称为事件代理,是一种利用事件冒泡的特性,将事件处理程序
如何通过 JavaScript 事件委托来简化代码逻辑?(JavaScript事件委托怎样简化代码逻辑)
JavaScript2024-12-22

如何使用PHP7的null合并运算符简化代码的逻辑判断?

如何使用PHP7的null合并运算符简化代码的逻辑判断?在PHP7中引入了一个新的运算符,即null合并运算符(??),该运算符可以减少代码中繁琐的逻辑判断。通过使用null合并运算符,我们可以简化对于变量是否为null的判断,从而简化代码
2023-10-22

如何利用 Java enumerate 方法优化代码逻辑?(利用Java enumerate方法优化代码逻辑的方法)

在Java编程中,代码的逻辑优化是提升程序性能和可读性的关键。其中,enumerate方法是Java中一个非常有用的工具,它可以帮助我们更高效地处理枚举类型的数据。本文将详细介绍如何利用Java的enumerate方法来优化代码逻
如何利用 Java enumerate 方法优化代码逻辑?(利用Java enumerate方法优化代码逻辑的方法)
Java2024-12-16

PHP7中新增的null合并运算符:如何简化代码的逻辑判断?

PHP7 中新增了一个很实用的运算符:null 合并运算符(null coalescing operator)。这个运算符可以用来简化代码中的逻辑判断,使代码更加简洁易读。传统的逻辑判断通常使用三元运算符或者 if-else 语句来实现。比
2023-10-24

JavaScript多级判定代码如何优化

本篇内容介绍了“JavaScript多级判定代码如何优化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、场景业务代码里, 一次操作可能会前
2023-07-05

JavaScript语法和React JSX语法的逻辑判断优化技巧有哪些

小编给大家分享一下JavaScript语法和React JSX语法的逻辑判断优化技巧有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JavaScript 语法篇嵌套层级优化function supply(fruit,
2023-06-27

如何优化JavaScript中的复杂判断?

我们在写JavaScript代码的时候,经常会遇到逻辑判断比较复杂的情况,通常我们可以使用if/else或者switch来实现多个条件判断。

解密 VUE 如何使用类型推断优化 JavaScript 代码

标题:“VUE使用类型优化JavaScript要求演示”
解密 VUE 如何使用类型推断优化 JavaScript 代码
2024-02-15

详解如何让JavaScript代码不可断点

这篇文章主要为大家详介绍了如何让JavaScript代码不可断点,文中的示例代码讲解详细,对我们学习JavaScript有一定帮助,感兴趣的可以了解一下
2022-11-13

如何优化Javascript前端代码

这期内容当中小编将会给大家带来有关如何优化Javascript前端代码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript的作用是什么1、能够嵌入动态文本于HTML页面。2、对浏览器事件做出
2023-06-14

C++ 函数优化详解:如何优化模板代码?

如何优化模板代码?内联展开:减少函数调用开销,提高性能。编译器优化:利用局部模板实例化、函数参数推导和内联常量。代码模板:提高代码可重用性,避免重复编写。避免不必要的类型转换:显式指定模板参数或使用 static_cast。C++ 函数优化
C++ 函数优化详解:如何优化模板代码?
2024-05-01

如何用状态机简化代码中复杂的 If Else 逻辑

不知道你有没有遇到代码逻辑特别复杂的情况,需要很多的 if else 来判断,每种情况有自己的逻辑。这样的 if else 特别多以后,阅读代码和继续迭代都变得很困难。如果你遇到这种代码,会怎么优化呢?

详解如何利用Python装饰器优化代码

这篇文章主要带大家深入探讨装饰器的应用,包括计时器装饰器和缓存装饰器等的实现,文中的示例代码讲解详细,需要的小伙伴可以参考下
2023-05-19

JavaScript异步加载怎样优化代码结构?(JavaScript异步加载如何优化代码结构)

在JavaScript开发中,异步加载是一种常见的技术,它可以提高页面的性能和用户体验。然而,异步加载也可能会导致代码结构的混乱,影响代码的可读性和可维护性。因此,如何优化异步加载的代码结构是一个值得探讨的问题。一、异步加载的概念和优势
JavaScript异步加载怎样优化代码结构?(JavaScript异步加载如何优化代码结构)
Java2024-12-19

C++ 函数优化详解:如何在不同编译器下优化代码?

通过预处理优化(如宏定义)、编译器标志优化(如 -o2)以及内联和循环优化等措施,可以在 c++++ 中优化函数,从而提高代码性能和节省资源。具体优化步骤包括:1. 利用预处理指令进行宏定义和预处理;2. 使用编译器标志指定优化设置,如 -
C++ 函数优化详解:如何在不同编译器下优化代码?
2024-05-01

编程热搜

目录