es6基礎0x003 預設引數

2021-09-13 03:24:24 字數 1427 閱讀 5840

function [name]([param1[ = defaultvalue1 ][, ..., paramn[ = defaultvaluen ]]])
function sum(a=0, b=0)

sum() // 0

sum(1) // 1

sum(1, 2) // 3

使用babel翻譯一下

function sum()
babel翻譯的結果可以看出,預設引數只檢查兩種情況

function sum(a=0)

sum() // 'number'

sum(undefined)// 'number'

sum(1) // 'number'

sum('1') // 'string'

sum(null) // 'object'

sum(false)// 'boolean'

前面的引數可以作為後面引數的預設值,甚至可以對前面的引數做一些特別的操作,比如簡單的加減乘除

function sum(a=1, b=a, c=a+b)

sum() // [1, 2, 3]

sum(2) // [2, 2, 4]

sum(2,2) // [2, 2, 4]

sum(2,2,2) // [2, 2, 2]

賦值預設引數甚至可以呼叫函式,可以呼叫函式,就已經說明無所不能了~

function sum(a=1, b=(()=>4)())

sum() // [1, 4]

sum(2) // [2, 4]

sum(2,2) // [2, 2]

注意: 無法呼叫函式內部宣告的函式作為預設值

function sum(a=1, b=num2())

return [a, b]

}sum() // uncaught referenceerror: num2 is not defined

引數還是按呼叫的時候傳輸的順序一一覆蓋的,不會因為它有預設值就跳過該形參的賦值

function sum(a=1, b )

sum() // [1, undefined]

sum(2)// [2, undefined]

sum(1,2) //[1, 2]

結構中也可以使用預設引數,雖然結構還沒在這系列出現過

function sum([x, y] = [1, 2],  = ) 

sum() // [1, 2, 3]

sum([2,4],) // [2, 4, 6]

ES6基礎 預設引數值

如果呼叫函式的過程中,定義的引數缺失,此引數變數的值則會是undefined。怎麼給缺失的引數賦值預設值,在es6之前,沒有簡潔的語法設定缺失引數的預設值,但是我們一般可以這麼編寫 解決缺失引數預設值 function myfunction x,y,z myfunction 6,7 複製 這種寫法是...

es6基礎0x021 反射

反射說起來和上一章節的 基本一樣,只是使用的方式不同,設計理念也不同。反射提供了一系列的靜態函式,可以使用reflect.function name prams 呼叫,這一系列的方法和 的處理器物件方法一致 栗子function sayhelloto name,age i am years old ...

es6 函式預設引數 物件

注意引數是物件,並且等號左邊是解構後的變數,用等號賦值,右邊是引數,也就是正常的變數,所以物件用冒號給值 案例1 是對解構後的變數給預設值 function move 沒什麼好說的 console.log move 3,8 引數直有乙個x,所以解構後沒有y則使用預設 console.log move...