函式新增特性:
test('hello'); //hello world
test('hello', 'kill'); // hello kill
}
首先我們看上面的**,函式預設值就是引數含有預設值的函式,此例子中y
是有預設值的,值是world
,所以我們在呼叫的時候,如果沒有給定第二個引數,輸出的結果是hello world
,如果給了第二個引數,那麼第二個引數就會取代預設值,輸出hello kill
。
這裡有一點需要注意,
函式預設值的後面不能再有其他沒有預設值的引數,這樣是錯誤的
test2('kill'); // 作用域 kill kill
test2(); // 作用域 underfind underfind
}
上面的**,我們可以看到我們的函式宣告中,y=x
,我們在呼叫函式的時候,第一次只是傳入了乙個引數,相當於傳入了引數x
,因為y=x
,所以函式結果是作用域 kill kill
,當沒有傳入引數時,兩個值都是underfind
。
下面我們將上面的函式做一些修改
test2('kill'); // 作用域 kill test
}
我們沒有在函式引數中宣告c
, 此時的值輸出kill test
,可以看出,函式的引數是有乙個自己的作用域的,跟外部的作用域不是乙個作用域。
}test3(1,2,3,4,'a')
}
在es5中是沒有這個使用方式的,只是在es6中才有,我們看一下輸出的結果是什麼
1rest
2rest
3rest
4rest a
rest引數就是把輸入的引數都轉化為乙個陣列,這個和arguments引數有異曲同工之妙,但是不會有arguments引數第乙個值的問題,這裡也要注意
rest引數後不能有其他引數了
這裡有一行**,大家可以看一下,是什麼意思?輸出的結果是什麼?
輸出的結果是:6
這句話就是我們常聽到的箭頭函式:我們怎麼去看這行**呢?
所以我們呼叫函式arrow(3) ,返回的是 3*2 等於 6;
這個就是沒有引數的時候的箭頭函式表示方法。
做箭頭函式的要注意類似繫結,不是所有的時候都適合用箭頭函式,要隨機應變。
什麼是尾呼叫呢,就是在函式的最後一句話呼叫乙個函式。
function
fx(x)
fx(123) // tail 123
}
我們這裡的fx()
方法的最後呼叫了tail()
方法,這個就是乙個尾呼叫。
那尾呼叫有什麼作用呢,提高效能。
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 沒有引數 乙個引數...