es6判斷空函式 ES6 函式的預設值

2021-10-17 09:21:34 字數 1720 閱讀 4872

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知識後在原來定義函式的基礎上進行理解var searchvalue 查詢匹配物件 var button var input var select button if searchvalue.input undefined button.click else 重新整理 tableli...

ES6 函式擴充套件

函式在js裡是相當重要的一部分了,es6裡也新增了一些函式方法,來看一下 test hello hello world test hello kill hello kill es6增加了函式引數預設值,可以直接在宣告引數的同時賦預設值,但是也可以後面重新賦值 test2 kill 括號內有引數x時,...

es6 箭頭函式

1.單引數 function cheng a 3 let cheng a 3 a a console.log cheng 9 2.多引數 function add a,b let add a,b a b 預設返回值 console.log add 3,9 3.無返回值 function add a,...