ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 声明式代码 - 与命令式不同,声明式意味着我们要写表达式,而不是一步一步的指示 - 以 SQL 为例,我们只是声明了我们需要回去的数据,具体实现,交给数据库自己去处理 - 概述:没有具体细节的编写方式就是声明时 通过下面一个实例找找什么是声明式的感觉 ``` // 命令式 var makes = []; for (i = 0; i < cars.length; i++) { makes.push(cars[i].make); } // 声明式 var makes = cars.map(function(car){ return car.make; }); ``` - 命令式表达的是怎么做,声明式表达的是做什么 - 除了更加清晰和简洁之外,`map`函数还可以进一步优化,这么一来我们宝贵的应用代码就无须改动了 如果有人觉得命令式循环会快很多,可以学学JIT的代码优化相关知识,[非常棒的视频](https://www.youtube.com/watch?v=65-RbBwZQdU) 在看一个示例 ``` // 命令式 var authenticate = function(form) { var user = toUser(form); return logIn(user); }; // 声明式 var authenticate = compose(logIn, toUser); ``` - 硬编码了那种一步接一步的执行方式。而 compose 表达式只是简单地指出了这样一个事实:用户验证是 toUser 和 logIn 两个行为的组合 - 声明式为潜在的代码更新提供了支持,使得我们的应用代码成为了一种高级规范(high level specification)