声明式和命令式
- 声明式:告诉“机器”,你想要什么,不需要关心中间实现过程,我们只需要开始和结果
- 命令式:如果你想要什么,你要告诉“机器”,并且还要告诉“机器”,怎么做,开始、过程、结果都要有
下面,我们通过一个例子来说明
比如,我们我们想要从上海去北京,我们不考虑这个票怎么买到, 还是做什么去,反正第二天,我们就到北京了,这就是声明式。但是命令式呢?我们还需要考虑,我们要是坐车怎么办,要是买票怎么办,是不是要中转什么的,考虑中间过程。而声明式就是中间过程交给别人去处理,我不管,这知道上海、北京
比较好的代码例子就是:
比如,我们要实现一个数组[1, 2, 3],让每一个元素乘以2
命令式做法:
let start = [1, 2, 3];
let end = [];
for(let i=0; i<start.length; i++) {
end.push(start[i] * 2);
}
声明式:
let start = [1, 2, 3];
let end = start.map(i => i*2);