什么是JavaScript函數?
在所有編程語言里,函數是用來包含需要重復執行的代碼塊,Javascript也不例外。
Javascript函數可以有0到n個參數。
Javascript函數可以返回一個值或0個值。
如何創建函數?
在JavaScript里,有兩種創建函數的方法法。
- 函數聲明法
function foo() {
/* do something */
}
- 函數表達式法
var foo = function() {
/* do something */
}
如何使用函數?
下面是使用不同類型函數的例子
- 簡單函數
var greet = function(person,greeting)
{
var text = greeting+','+person;
console.log(text);
};
greet('Duran','Hello');
- 有返回值得函數
var greet = function(person, greeting)
{
var text = greeting+','+person;
return text;
};
console.log(greet('Duran','Hello'));
- 返回函數的函數
var greet = function(person,greeting)
{
var text = greeting+''+person;
return function(){console.log(text)};
};
var greeting = greet('Duran','hello');
greeting();
自執行匿名函數
在javascript中,自執行匿名函數一種隨處可見的函數,所以理解它是非常重要的。
它首先建立一個函數表達式,然后立刻執行它。
注意:所有在自執行匿名函數中聲明的變量在函數外部都是不可訪問的。
(function(){
var foo = 'Hello world';
})()
console.log(foo); //undefined!
函數作為函數的參數
函數在JavaScript中非常重要,它們被當做一等公民,什么是一等公民?就是它們能被賦值給變量,能作為參數傳遞給另一個函數。
傳遞匿名函數作為參數
var myFn = function(fn) {
var result =fn();
console.log(result);
}
myFn(function(){return 'hello world';});
傳遞非匿名函數作為參數
var myFn = function(fn) {
var result = fn();
console.log(result);
}
var myOtherFn = function(){
return 'hello world';
}
myFn(myOtherFn);