JS 純函式及其應用

2021-10-08 09:06:38 字數 842 閱讀 9273

(1)如果函式的呼叫引數相同,則永遠返回相同的結果。它不依賴於程式執行期間函式外部任何狀態或資料的變化,必須只依賴於其輸入引數。

(2)該函式不會產生任何可觀察的***,例如網路請求,輸入和輸出裝置或資料突變(mutation)。

這就是純的函式。 如果乙個函式符合上述 2 個要求,它就是純函式。

純函式在函式式程式設計中被大量使用。諸如 reactjs 和 redux 等優質的庫都使用了純函式。

乙個可以被觀察的***是在函式內部與其外部的任意互動。這可能是在函式內修改外部的變數,或者在函式裡呼叫另外乙個函式等。

注: 如果純函式呼叫純函式,則不產生***依舊是純函式。

純函式的例子

function priceaftertax

(productprice)

它符合我們所說的兩條純函式的定義。不依賴於任何外部輸入,不改變任何外部資料、沒有***。

即使你用同樣的輸入執行執行這個函式 100,000,000 次它依舊產生同樣的結果。

非純函式的例子

var tax =20;

function calculatetax

(productprice)

其中函式的計算結果取決於外部 tax 變數,而純函式不能依賴外部變數。它沒有滿足定義中的第乙個要求,因此這個函式是不純的。

方便測試

使用純函式的乙個主要好處是它們可以直接測。 如果傳入相同的引數,它們將始終產生相同的結果。

方便維護和重構

正確地使用純函式可以產生更加高質量的**

純虛函式的應用

純虛函式的定義 在c 中,只有虛函式才能被宣告為純虛函式,語法格式為 virtual 返回值型別 函式名 函式引數 0 其中,純虛函式沒有函式體,只有函式宣告,也就是在類中的虛成員函式後面加上 0,來表示這是乙個純虛函式。2.純虛函式的應用 包含純虛函式的類稱為抽象類,所謂的抽象類也就是所無法被例項...

select 函式及其應用

select 函式用於在非阻塞中,當乙個套接字或一組套接字有訊號時通知你,系統提供select函式來實現多路復用輸入 輸出模型,所在的標頭檔案為 include和 include原型 int select int maxfd,fd set rdset,fd set wrset,fd set exse...

雜湊函式及其應用

雜湊,英文hash,也有直接音譯為 雜湊 的,就是把任意長度的輸入 又叫做預對映,pre image 通過雜湊演算法,變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,所以不可能從雜湊值來確定唯一的輸入值。簡單...