声明式编程 (Declarative Programming)
函数式编程通常偏好声明式风格:描述“做什么”(what)而不是“怎么做”(how)。
命令式 vs 声明式
下面的例子演示把数组元素翻倍并求和,分别使用命令式和声明式写法:
js
const numbers = [1, 2, 3, 4, 5];
// 命令式(Imperative)
let doubledSumResult = 0;
for (let i = 0; i < numbers.length; i++) {
const doubled = numbers[i] * 2;
doubledSumResult += doubled;
}
console.log('命令式结果:', doubledSumResult);
// 声明式(Declarative)
const double = x => x * 2;
const sum = (a, b) => a + b;
const result = numbers
.map(double)
.reduce(sum, 0);
console.log('声明式结果:', result);优势
- 更高层次抽象:关注数据转换的流程而不是循环和状态管理。
- 更易于测试与组合:小函数可以单独测试并在不同场景复用。
何时不适合声明式
- 在必须精细控制性能或内存分配的场景,命令式可能更高效。
- 对某些初学者,过度抽象的声明式代码反而难以理解。