JavaScript 自學筆記11

1. 匿名函數

(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). 箭頭函數表達式

  • ES6引入了盡頭函數表達式,方法如下:

傳統方式:let hello = function () {console.log('Hello');};

箭頭表達式:let hello = () => console.log('Hello');

2. 遞歸函數

(1). 遞歸函數是一個可以不斷調用自身的函數

如:function add(num) {

console.log(num);

let addNum = num + 1;

if (num < 9)

add(addNum);

};

add(7); // 7 8 9

3. 默認參數

(1). 用法

  • function fn(變量1 = 默認值,變量2 = 默認值2,...) {};

如:function greeting(message = ‘Hi’){

console.log(message);

};

greeting(); // 'Hi'

在沒有傳值的情況下,‘Hi’ 就是message的默認值。

  • 若只想傳一個參數給變量,而保留其他默認值時,可以使用undefined作爲想要保留的值。

如: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'); //編譯正常,不再報錯

  • 默認值不被計算在arguments.length中。

如:function say (message, name = 'Yvonne'){

console.log(arguments.length);

};

say('hello'); // 1

say('hello', 'Sylvia'); // 2

上一篇:Day 3


下一篇:k8s中部署jenkins并简单使用