MST

星途 面试题库

面试题:JavaScript逻辑表达式中等优化问题

现有一段JavaScript代码:`let a = true; let b = false; let c = true; if ((a && b) || (a && c) || (!a && b)) { console.log('Some condition met'); }` 请优化这段逻辑表达式,使其更简洁高效,并且阐述优化思路。
32.0万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 优化后的代码
    let a = true;
    let b = false;
    let c = true;
    if (a && (b || c)) {
        console.log('Some condition met');
    }
    
  2. 优化思路
    • 原始表达式(a && b) || (a && c) || (!a && b)中,分析每一项。
    • 首先看(a && b)(a && c),这两项都有a,根据逻辑运算的分配律A && B + A && C = A && (B + C)(这里&&相当于乘法,||相当于加法),可以将这两项合并为a && (b || c)
    • 再看(!a && b)这一项,因为atrue时,!afalse,那么(!a && b)永远为false,所以可以直接去掉这一项。最终优化为a && (b || c),这样逻辑更简洁,在运行时也会更高效,因为减少了不必要的判断。