es6 函式預設形參

2021-10-01 22:28:51 字數 2340 閱讀 4863

一、 在es6之前,

函式的形參當沒有傳值時,使用預設值會比較麻煩。

function sum(a, b, c) 

console.log(sum(10, 1, 2)); //13

console.log(sum(11, 1, 2)); //14

這裡形參b,形參c,想讓b預設值傳1,c預設值傳2;在使用時還要寫兩遍。

還有一種書寫方式(這種方式使用起來很優雅,但函式在書寫時也是很麻煩的):

function sum(a, b, c) 

console.log(sum(10)) //13

console.log(sum(11)) //14

二、 es6給出了新的方法

在書寫形參時,直接給形參賦值,賦的值即是預設值。這樣一來,當呼叫函式時,如果沒有給對應的引數賦值(給它的值是undefined),則自動使用預設值

// function sum(a, b = 1, c = 2) 

// console.log(sum(10)) //13

// console.log(sum(11)) //14

// console.log(sum(10, undefined, undefined)) //13

// console.log(sum(1, undefined, 5)) //7

函式的預設形參也可以是乙個表示式

/**

*建立乙個元素

* @param name 元素的名稱

* @param container 元素的父元素

* @param content 元素的內容

*/// function createelement(name, container, content)

// }

// createelement("div", document.getelementbyid("container"), "好好練習一下")

在這個例子中,我們可以直接寫作:

// function createelement(name = "div", container = document.getelementbyid("container"), content = "") 

// }

// createelement(undefined, undefined, "好好練習一下")

建立的元素是div,父元素用document.getelementbyid("container"),方式獲得是常用的場景,這樣,書寫為函式預設形參方便很多。

又及1嚴格模式下arguments和形參是脫離的,非嚴格模式下是關聯的

此時是關聯的,當形參a被賦值為3,arguments裡第一位被關聯為3;

使用嚴格模式:

它們不再關聯。

在es6中只要給函式加上引數預設值,該函式會自動變為嚴格模式下的規則,arguments和形參脫離

例如:

function test(a, b = 1) 

2.形參和es6中的let或const宣告一樣,具有作用域,並且根據引數的宣告順序,存在暫時性死區例如下面這段**會報錯:

es6 函式預設引數 物件

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

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