假设有一个数组,我们想遍历它并把它打印到控制台。
用命令式方法遍历数组:
var arr = [1, 2, 3] for(var i = 0; i < arr.length; i++) { console.log(arr[i]) // 打印 1 2 3 }
用命令式来解决问题,我们精确地告诉程序应该“如何”做。
在这个案例中,我们的任务是:打印数组的元素。
但是这个代码看起来我们像在告诉编译器该做什么。“获取数组长度,循环数组,用索引获取每一个数组元素”。
即,命令式编程——告诉编译器“如何”做。
而声明式编程中,我们要告诉编译器做“什么”,而非“如何”做。
“如何”做的部分被抽象到普通函数中(这些函数被称为高阶函数)。
我们可以用内置的forEach函数遍历数组并打印它,以下就是声明式方法遍历数组:
var arr = [1, 2, 3] arr.forEach((item) => console.log(item)) // 打印 1 2 3
forEach是一个处理“如何”做的抽象函数,这种抽象函数可以让开发人员只需要关心手头的问题(做“什么”的部分)