面试题答案
一键面试- 减少不必要的函数调用
- 尽量避免在逻辑与(&&)和逻辑或(||)操作符中进行重复且不必要的函数调用。如果一个函数调用的结果在逻辑判断中不会改变,将其提前计算并存储在变量中。
- 例如:
// 未优化 function expensiveFunction() { console.log('执行了昂贵的函数'); return true; } if (expensiveFunction() && expensiveFunction()) { console.log('条件满足'); } // 优化后 const result = expensiveFunction(); if (result && result) { console.log('条件满足'); }
- 合理安排条件顺序
- 对于逻辑与(&&)操作符,将最有可能为假的条件放在前面。因为逻辑与操作符一旦遇到假值就会停止计算后续条件。
- 例如:
function checkCondition1() { console.log('检查条件1'); return false; } function checkCondition2() { console.log('检查条件2'); return true; } // 优化前 if (checkCondition2() && checkCondition1()) { console.log('条件满足'); } // 优化后 if (checkCondition1() && checkCondition2()) { console.log('条件满足'); }
- 对于逻辑或(||)操作符,将最有可能为真的条件放在前面。因为逻辑或操作符一旦遇到真值就会停止计算后续条件。
- 例如:
function checkCondition3() { console.log('检查条件3'); return true; } function checkCondition4() { console.log('检查条件4'); return false; } // 优化前 if (checkCondition4() || checkCondition3()) { console.log('条件满足'); } // 优化后 if (checkCondition3() || checkCondition4()) { console.log('条件满足'); }
- 使用短路求值特性
- 利用逻辑与(&&)和逻辑或(||)操作符的短路求值特性,将复杂的逻辑判断简化。
- 例如,使用逻辑与操作符来执行一个函数仅当某个条件为真时:
function condition() { return true; } function action() { console.log('执行动作'); } condition() && action();
- 使用逻辑或操作符来提供默认值:
let value; let defaultValue = '默认值'; let result = value || defaultValue; console.log(result);