JavaScript函式基本概念

2021-09-02 15:20:58 字數 2317 閱讀 2075

js的函式和python差不多,def 換成function

arguments

js函式在使用時傳入的引數可以不與定義的引數個數相等(可多可少),

arguments用於獲取所有傳入的引數,用法類似與array

rest

用法function f(a,b,...rest)

獲取除了自定義的a,b引數外的其餘引數,用法和array類似,若無,則返回空陣列。

全域性物件類似於命名空間,一般情況下我們所寫的變數都會在乙個叫window的命名空間內。如:

var a =1;

console.

log(a)

;#等價於console.

log(window.a)

也可以以物件的方式自己定義乙個命名空間

var name_space =

name_space.a =

1name_space.

func

=function

(...

)console.

log(name_space.a)

this

在物件內的this指向該物件,但在物件外使用this,會指向全域性變數window。

var obj =

};

使用getname時,應該

obj.getname();

而不是

var f = obj.getnamef(

)

這樣this又會指向window!

另外,若

getname

=function()

var obj =

;

這樣也會使得this指向window

這兩者都是為了解決this的指向問題

function

getage()

var xiaoming =

;getage.

(xiaoming,

);// 25, this指向xiaoming, 引數為空

map/reduce

內建與array中,傳入乙個函式,用法

array.map(f)

map的作用是使得[x1,x2,x3,…]轉化為[f(x1),f(x2),f(x3),…]

array.reduce(f)

[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4),

這種方法可以用於求累加,累乘等運算。

filter

用於過濾,若函式輸出結果為false,則刪除該元素,若為true,則保留

如實現保留奇數過濾偶數的功能:

array.

filter

(function

(x))

;

sort

用於自定義的排序,傳入兩個引數x和y,若返回-1則把x排在y前面,返回0則認為兩者相等,返回1則把y排在x前面。

array.

sort

(function

(x,y)

)

注意,js預設的sort函式是先將元素轉化為字元型別,再排序,所以若對

[1,2,10]排序,會返回[1,10,2]!

匿名函式

用法

var

f= x => x*x

若要輸入/輸入多個值,應該

varf=

(x,y)

=>

;

另外值得注意的是匿名函式中的this的作用域是他所處的{},而不是window

generator

生成器的用法和python差不多,使用function*定義

function* gen(

)return

;}

使用生成器有兩種方法

1、使用next()函式

var f =

gen();

f.next()

;//返回

...f.

next()

;//

這種方法會返回乙個字典,並且需要自己判斷是否讀取完所有的值

2、使用for … of:

這種方法和python一樣,不詳述。

Fabric private data基本概念

fabric private data利用sidedb來儲存私有資料,相當於在通道之上又提供了一層更細粒度的資料隱私保護機制。本文將介紹fabric private data的引入目的 基本概念與應用場景。目前在hyperledger fabric中實現資料隱私的方法是使用通道。但是官方並不孤立為了...

Fabric private data基本概念

fabric private data利用sidedb來儲存私有資料,相當於在通道之上又提供了一層更細粒度的資料隱私保護機制。本文將介紹fabric private data的引入目的 基本概念與應用場景。目前在hyperledger fabric中實現資料隱私的方法是使用通道。但是官方並不孤立為了...

HyperLedger Fabric基本概念

源自 提供共識服務的網路節點,例如,使用kafka或pbft 維護賬本的網路節點,通常在hyperledger fabric中擔任背書或者記賬角色。檢查交易的合法性,最終將交易提交到區塊鏈中。orderers peers comitter 三者之間關係如下圖所示 fabric中交易的處理過程 在整個...