這篇文章給大家分享的是有關(guān)ES6中默認(rèn)參數(shù)是什么的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defaultValueN ]]]) { statements }使用
function sum(a=0, b=0){ return a+b } sum() // 0 sum(1) // 1 sum(1, 2) // 3
使用babel
翻譯一下
function sum() { var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; return a + b; }傳值檢測
從babel翻譯的結(jié)果可以看出,默認(rèn)參數(shù)只檢查兩種情況
不傳參數(shù)
傳入undefined
function sum(a=0){ return typeof a } sum() // 'number' sum(undefined)// 'number' sum(1) // 'number' sum('1') // 'string' sum(null) // 'object' sum(false)// 'boolean'前參后用
前面的參數(shù)可以作為后面參數(shù)的默認(rèn)值,甚至可以對(duì)前面的參數(shù)做一些特別的操作,比如簡單的加減乘除
function sum(a=1, b=a, c=a+b){ return [a, b, c] } sum() // [1, 2, 3] sum(2) // [2, 2, 4] sum(2,2) // [2, 2, 4] sum(2,2,2) // [2, 2, 2]默認(rèn)參數(shù)調(diào)用函數(shù)
賦值默認(rèn)參數(shù)甚至可以調(diào)用函數(shù),可以調(diào)用函數(shù),就已經(jīng)說明無所不能了~
function sum(a=1, b=(()=>4)()){ return [a, b] } sum() // [1, 4] sum(2) // [2, 4] sum(2,2) // [2, 2]
注意: 無法調(diào)用函數(shù)內(nèi)部聲明的函數(shù)作為默認(rèn)值
function sum(a=1, b=num2()){ function num2(){ return 4 } return [a, b] } sum() // Uncaught ReferenceError: num2 is not defined按序覆蓋
參數(shù)還是按調(diào)用的時(shí)候傳輸?shù)捻樞蛞灰桓采w的,不會(huì)因?yàn)樗心J(rèn)值就跳過該形參的賦值
function sum(a=1, b ){ return [a, b] } sum() // [1, undefined] sum(2)// [2, undefined] sum(1,2) //[1, 2]解構(gòu)賦值默認(rèn)參數(shù)
結(jié)構(gòu)中也可以使用默認(rèn)參數(shù),雖然結(jié)構(gòu)還沒在這系列出現(xiàn)過
function sum([x, y] = [1, 2], {z: z} = {z: 3}) { return [x, y, z]; } sum() // [1, 2, 3] sum([2,4],{z: 6}) // [2, 4, 6]
感謝各位的閱讀!關(guān)于ES6中默認(rèn)參數(shù)是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)站名稱:ES6中默認(rèn)參數(shù)是什么-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://www.rwnh.cn/article0/ceieoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、營銷型網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、動(dòng)態(tài)網(wǎng)站、網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容