方法引數 預設值 ES6 函式的預設值

2021-10-11 23:21:39 字數 1720 閱讀 8839

es6 之前,不能直接為函式的引數指定預設值,只能採用變通的方法。

function log(x, y) 

log('hello') // hello world

log('hello', '你好') // hello china

這裡可以看到,檢查函式log的引數y有沒有賦值,如果沒有,則指定預設值為『哈嘍』。

這種寫法的缺點在於,如果引數y賦值了,但是對應的布林值為false,則該賦值不起作用。就像下面**,引數y等於空字元,結果被改為預設值。

function log(x, y) 

log('hello', '') // hello 哈嘍

為了避免這個問題,通常需要先判斷一下引數y是否被賦值,如果沒有,再等於預設值。

if (typeof y === 'undefined')
直接寫在引數定義的後面

var a = prompt()

function log(x, y = '哈嘍')

log('hello') // hello 哈嘍

log('hello', a) // hello 哈嘍

這裡可以看到 引數y等於空字元,結果也沒有被改。

es6 的寫法比 es5 簡潔許多,而且非常自然

es6裡面引數變數是預設宣告的,所以不能用letconst再次宣告。

上面**中,引數變數x是預設宣告的,在函式體中,不能用letconst再次宣告,否則會報錯。

使用引數預設值時,函式不能有同名引數。

// 不報錯

function foo(x, x, y)

// 報錯

這裡可以看到,有同名函式的話也會報錯

今天就到這裡了!

ES6 函式引數的預設值

在es6之前,不能直接為函式的引數指定預設值,只能採取變通的方法。function log x,y log kkk kkk world這種寫法的缺點在於 如果引數y賦值了,但是對應的布林值為false,則該賦值不起作用。如果在呼叫函式的時候,傳入的y引數是乙個空字串,那麼y就會被修改為預設值。避免這...

ES6 函式預設值

1 es6之前,函式如果需要預設值,需要在函式內額外處理,如 function log x,y log hello hello world log hello es6 hello es6 log hello hello world上述 中第二行,檢查y引數是否有值,如果沒有,將其賦值為預設值 wor...

ES6 函式預設值

在編寫函式的時候,傳參有時會帶來一些問題 比如,有兩個引數,但是我傳參的時候只傳了乙個怎麼辦呢?或者我乙個都沒有傳怎麼辦呢?通常來說,我們都會這麼處理一下 function person name 但是如果引數很多呢?name age 等等 總不能每乙個都這麼寫吧,多麻煩啊!所以,最怕麻煩的程式設計...