命令式是面向过程。声明式是面向结果。以找出数组中对偶数为例。
命令式:

const arr = [1, 2, 3, 4, 5, 6];
const even = [];
for (let i = 0; i < arr.length; i++) {
  if (arr[i] % 2 === 0) {
    even.push(arr[i]);
  }
}

声明式:

const arr = [1, 2, 3, 4, 5, 6];
const even = arr.filter((item) => item % 2 === 0);

命令式和声明式的应用

命令式:jQuery。
声明式:React,lodash(underscore),函数式编程。

优缺点比较

声明式的代码更健壮,重复代码少。声明式本质是把可能会变的做了层抽象,来对变化的解耦。比如,React 如果在浏览器中用配合 React DOM, 如果在原生应用中用 React Native。不用改逻辑代码。用 jQuery 就做不到。

命令式的代码容易懂。