《JavaScript ES6 函數式編程入門經典》筆記1

在圖書館翻書,看到這本今年出版,很薄的書,翻起來看了幾頁,感受寫的通俗易懂,大概記錄一下。編程

  1. 什麼是函數是編程
    函數式編程技術主要基於 數學函數和它的思想
    數學中的函數有什麼特色?
    如f(X)=Y:
  • 函數必須老是接收一個參數
  • 函數必須老是返回一個值
  • 函數應該依據接收到的參數,而不是外部環境運行

JS 函數數組

var percnetValue = 5;
var calculateTax = (value) => {return value/100 * (100+ percnetValue)}

calculateTax函數,用數學中函數的定義分析,它依賴了全局變量percnetValue,所以在數學意義上就不能成爲一個真正的函數。
用數學函數的思想。從新寫一下這個函數函數式編程

var calculateTax = (value, percnetValue) => {return value/100 * (100+ percnetValue)}

經過這個例子,咱們定義一下函數式編程:
函數式編程是一種範式,是僅依賴輸入就能夠完成自身邏輯的函數。函數

函數與方法的區別:
函數是一段能夠經過其名稱被調用的代碼,能夠傳遞參數並返回值
方法是一段必須經過其名稱及其關聯對象的名稱被調用的代碼code

var simple = (a) => {return a}  //一個簡單的函數
simple(5) // 名稱調用

var obj = {simple: (a) => {return a}}  // 一個簡單的方法
obj.simple(5) // 名稱及其關聯對象調用
  1. 引用透明性
    根據函數的定義,能夠得出結論,全部的函數對於相同的輸入都將返回相同的值。對象

  2. 命令式、聲明式、抽象索引

命令式:如何作
咱們告訴編譯器「得到長度,循環數組,用索引獲取每個數組元素,等等」element

var array = [1,2,3]
for(i=0,i<array.length;i++):
    console.log(array(i))

聲明式:作什麼
告訴編譯器作什麼,移除了如何作的部分編譯器

var array = [1,2,3]
array.forEach((element) => console.log(element))

函數式編程主張以抽象的方式建立函數,以利於重用數學

相關文章
相關標籤/搜索