(1). 匿名函數,即沒有名字的函數。
(function (){
//statement;
});
如:let hello = function () {
console.log('Hello, anonymous');
};
hello(); // 'Hello, anonymous'
(2). 匿名函數可以作爲參數
如:setTimeout(function(){
console.log('一秒后執行');
}, 1000);
(3). 調用匿名函數后立即執行
如:let animal = {name: 'cat', age: 7};
(function(){
console.log('小動物是:' + animal.name);
})(animal); // '小動物是:cat'
(4). 箭頭函數表達式
傳統方式:let hello = function () {console.log('Hello');};
箭頭表達式:let hello = () => console.log('Hello');
(1). 遞歸函數是一個可以不斷調用自身的函數
如:function add(num) {
console.log(num);
let addNum = num + 1;
if (num < 9)
add(addNum);
};
add(7); // 7 8 9
(1). 用法
如:function greeting(message = ‘Hi’){
console.log(message);
};
greeting(); // 'Hi'
在沒有傳值的情況下,‘Hi’ 就是message的默認值。
如:function greeting(message = ‘Hi’){
console.log(message);
};
greeting(undefined); // 'Hi'
如:function message (m = greeting()){
console.log(m);};
function greeting () {return 'Hello';};
message(); // 'Hello'
如:function requiredArg() {throw new Error('The argument is required');}
function say(a = requiredArg(), b = requiredArg()){
return a + b;
};
say(); // error
say('hello'); // error
say('hello', 'Sylvia'); //編譯正常,不再報錯
如:function say (message, name = 'Yvonne'){
console.log(arguments.length);
};
say('hello'); // 1
say('hello', 'Sylvia'); // 2