ES6 函式的擴充套件

2022-07-29 00:09:15 字數 2814 閱讀 8235

1. 規則

function ff(x, y = 'world') 

console.log(ff('hello')); // hello world

console.log(ff('hello', 'china')); // hello china

console.log(ff('hello', '')); // hello

function foo(x = 5)

(function (a) {}).length // 1

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

(function (a, b, c = 5) {}).length // 2

var x = 1;

function f(x, y = x)

f(2) // 2

let x = 1;

function f(y = x)

f() // 1

2. 函式引數 解構賦值
function foo() 

foo({}) // 10 5

foo() // 1 5

foo() // typeerror: cannot read property 'x' of undefined

function foo( = {}) 

foo({}) // 10 5

foo() // 1 5

foo() // 1 5

function foo() 

foo({}) // 10 undefined

foo() // 1 undefined

foo() // typeerror: cannot read property 'x' of undefined

// 寫法一

function m1( = {})

// 寫法二

function m2( = )

// 函式沒有引數的情況

m1() // [0, 0]

m2() // [0, 0]

// x 和 y 都有值的情況

m1() // [3, 8]

m2() // [3, 8]

// x 有值,y 無值的情況

m1() // [3, 0]

m2() // [3, undefined]

// x 和 y 都無值的情況

m1({}) // [0, 0];

m2({}) // [undefined, undefined]

m1() // [0, 0]

m2() // [undefined, undefined]

// 寫法三

function m3( = {})

// 寫法四

function m4( = )

m1() // [1, 0]

m2() // [0, 0]

3. 函式引數預設值 的應用
function throwifmissing() 

function foo(mustbeprovided = throwifmissing())

foo()

// error: missing parameter

function foo(optional = undefined)

function add(...values) 

return sum;

}add(2, 5, 3) // 10

add(2, 5, 3, 5) // 15

對比 es5 中的arguments

1. 箭頭函式 語法

var sum = (num1, num2) =>

var f = v => v;

// 等同於

var f = function(v) ;

2. 箭頭函式 this 指向

var a = 2;

var obj = ;

var fn1 = (a) => ;

var fn2 = function(a) ;

fn1.call(obj); // 2

fn2.call(obj); // 100

3. 箭頭函式 的約束

const test = function baz() {};

console.log(test.name); // es5輸出:""

console.log(test.name); // es6輸出:"baz"

// 方案一:

'use strict';

function dosomething(a, b = a)

// 方案二:

const dosomething = (function () ;

}());

ES6 函式擴充套件

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

ES6函式擴充套件

函式引數的預設值 在es5中,我們想給函式乙個預設值,需要這樣寫 function add x,y 在es6中 可以這樣寫 function add x,y ss add dd ddss add ss dd ssdd add dd dd我們只需要在引數上直接寫上我們想要的預設值就好了。當我們給函式乙...

ES6函式擴充套件

function fun a,b world fun hello 輸出helloworld let a aa function fun a,b a fun bb function fun arg fun 1,2,3,4,1 語法 param param 對應函式 function 沒有引數 乙個引數...