目标:将一个 Array 的所有值加总
var array = [3,2,1]
var total = 0
for( var i = 0 ; i <= array.length ; i ++ ){
total += array[i]
}
Imperative Programming
会写出完整的计算过程,
如果演算非常复杂,
甚至出现巢状 loop 或巢状 object 时,
在画面上会出现许多判断与加减计算,
钜细靡遗地告诉程序该「如何」做到。
var array = [3,2,1]
array.reduce( function( previous, current ){
return previous + current
})
Declarative Programming
则直接向程序宣告我想要的东西是什麽。
如上范例中,我要程序进行一个「reduce」,
并说明计算方式是「previous + current」,
至於实际要如何达成,则完全交给程序处理。
Declarative 的作法是将行为抽象化,
并把具体执行方式都封装在
Array.prototype.reduce()
里,
不再需要额外的变数,尽可能减小变动,
以降低BUG产生的机会。
同时 Declarative 也具有明确的语意,
可以从宣告中理解执行的工作内容,
比 Imperative 拥有更高可读性。
但使用 Declarative 的前提是,
JS 程序认识 reduce
这个方法,
知道该对资料进行何种处理。
另外,由於已经对行为抽象化,
具体实作方式完全交给了程序,
Declarative 在实际操作中的灵活性相对较低。
「鲑鱼均,因为一场鲑鱼之乱被主管称为鲑鱼世代,广义来说以年龄和脸蛋分类的话这应该算是一种 KNN 的...
前言: 学会了ViewModel,接下来就是建立观察 LiveData。 大纲 : LiveData...
在接下来几篇的文章中,大概会提到所谓的Git,後来听许多前辈说,Git是工程师非常加分的条件,虽然自...
前言 你使用过Prototype,那你知道它可以被污染吗? 正文 概念 Javascript的物件透...
讯息文本使用AES-CBC模式加密传送,接收的结果亦以相同规则加密 必要的参数 如何取得 JSON讯...