ES6函式擴充套件

2022-04-04 23:32:31 字數 1263 閱讀 5231

1、函式的 length 屬性

es6 允許為函式的引數設定預設值,即直接寫在引數定義的後面。

function test(x, y = 'world')

注意:函式的length屬性,將返回沒有指定預設值的引數個數。如果遇到有預設值的引數 就停止。

function test(x, m,y = 'world',z,f) 

console.log(test.length)

//2 遇到預設引數則停止 所以為2

2、rest引數

es6引入rest引數,用於獲取函式的多餘引數,這樣就不需要使用arguments物件了。rest引數搭配的變數是乙個陣列,該變數將多餘的引數放入陣列中;

...values 就是 rest 引數的表現形式
function

add(...values)

add(2, 5, 3)

3、箭頭函式

es6 中允許使用「箭頭」(=>)宣告函式

基本用法:

let fun = val=>val; //乙個引數val並返回乙個val

//等價於

function

fun(val)

注意:如果箭頭函式不需要引數或需要多個引數,就使用乙個圓括號代表引數部分;

如果箭頭函式的**塊部分多於一條語句,就要使用大括號將它們括起來,並且 使用return語句返回。

let fun = (name,age)=>

箭頭函式有內部屬性arguments,但不儲存實參

4、箭頭函式的 this 指向

箭頭函式裡面沒有自己的this,自然而然也就不能作為建構函式,箭頭函式是引用外層的this。在箭頭函式中 this 指向是固定的。

箭頭函式導致this總是指向函式定義生效時所在的物件中的this;

function

foo() , 100);

} foo() // global 物件 ,因為箭頭函式沒有自己的this,foo函式的this就是箭頭函式this的指向。foo中this指向是global 所以 箭頭函式中的this也是指向global(即外層this)

eg:

function

foo() , 100);

}var id = 21;

foo.call(); // 更改foo中this指向物件 所以列印結果為42;

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 沒有引數 乙個引數...