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...