商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 声明式编程和命令式编程

声明式编程和命令式编程

  发布于2026-07-21 阅读(0)

扫一扫,手机访问

今天我们来聊一个很基础但也很重要的概念——编程范式。简单来说,它决定了你写代码时,脑子里想的是“我要什么”,还是“我该怎么一步步拿到”。

先看声明式编程。它的核心思想是“关注目标”——你只需要告诉机器你想要什么结果,至于机器怎么去实现,那不是你操心的事。换句话说,你声明你的意图,然后把执行细节交给底层的机制去处理。

比如在HTML里,你想显示一个p标签,直接写

This is a text

就行了。你不必告诉浏览器“先创建一个元素节点,再设置它的文本内容,最后把它挂到DOM树上”,那些都是浏览器自己操心的事。再比如用SQL查询学生信息,你写一句select * from students where age > 18,数据库引擎就会自动去规划如何扫描索引、如何过滤数据,你只管拿到结果就好。

说白了,声明式编程降低的是“你怎么做”的认知负担,让你把精力集中在“你要什么”上。

那命令式编程呢?正好相反。它要求你事无巨细地告诉机器具体怎么做,每一步怎么走,最终拼接出你想要的结果。机器没有义务去猜你的意图,你下达的每条指令它都会严格执行。

举个经典的例子,求一个数组的和。用命令式的方式,你会这样写:

var numbers = [1,2,3,4,5];
var total = 0;
for (var i = 0; i < numbers.length; i++) {
    total += numbers[i];
}
console.log(total);

看到了吗?你手动创建了一个累加器变量,然后循环遍历数组,把自己累加到总量上。每一步都是你亲自指挥的。

而如果用声明式的方式,你只需要这样说:

var numbers = [1,2,3,4,5];
var total = numbers.reduce(function (sum, n) {
    return sum + n;
});
console.log(total);

你看,这里你并没有说“怎么遍历”、“怎么累加”,你只是表达了一个意图:把这个数组归约成一个总和。具体怎么归约,传给reduce的回调函数会处理。

这两种范式没有绝对的优劣,但在实际项目中,理解它们的区别能帮你写出更清晰、更易于维护的代码。下次写代码的时候,不妨先问自己一句:我到底是在指挥机器,还是在表达意图?

本文转载于:https://blog.csdn.net/qq_44162474/article/details/107720970 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

上一篇:我对编程的理解

下一篇:结对编程体会

热门关注