es6函式預設引數與手動設定預設引數的區別

2021-08-26 14:52:16 字數 1260 閱讀 3373

函式預設引數

之前我們不能直接為函式指定預設引數,因此很多時候為了保證傳入的引數具備乙個預設值,我們常常使用如下的方法:

function add(x, y) 

console.log(add()); // 50

這種方式並不是沒有缺點,比如當我傳入乙個x值為false(或運算子判斷為假的時候),這個時候任然會取到預設值,就不是我們的本意了。

來看看es6的預設值寫法:

function add(x = 20, y = 30) 

console.log(add());

babel**轉化: 

"use strict";

function add()

console.log(add());

在實際開發中給引數新增適當的預設值,可以讓我們對函式的引數型別有乙個直觀的認知。

const buttongroupprops = 

export default function buttongroup(props = buttongroupprops)

* 函式的length屬性

* 指定了引數預設值以後,length將返回沒有指定預設值的引數個數。

* 指定了預設值後,length屬性將失真,(我覺得這是相對說的,因為這時候length表示的必傳引數。)

* length屬性的含義是,該函式預期傳入的引數個數。某個引數指定預設值後,預期傳入的

* 就不包含這個了,說白了就是必傳引數。

* 同理,rest引數也不計入length屬性

console.log((function(a){}).length); //1

console.log((function(a=5){}).length); //0

console.log((function(...args){}).length); //0

引數預設值是乙個變數,這個變數的作用域也先是當前函式的作用域,然後才是全域性作用域。

//es6

console.log((function(a=5){}).length)

//es5

"use strict";

console.log(function () .length);

預設引數詳細講解!!!

es6 函式預設引數 物件

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

ES6 函式引數

引數收集 展開 1.收集剩餘引數 rest parameter 必須是最後乙個 function show a,b,args show 2017,12,21,20,10 2.展開陣列 let arr1 1,2,3 let arr2 4,5,6 let arr3 arr1,arr2 console.l...

ES6 函式 引數

函式的引數 1 引數擴充套件 陣列展開 1 收集 剩餘的 引數 function show a,b,args 三點運算子 rest parameter 必須是最後乙個 function show a,b,args show 12,15,8,9,20 輸出 12 15 8,9,20 2 陣列展開 展開...