函數
函數:由事件驅動的或者當它被調用時執行的可重復使用的代碼塊。語法格式:
function 函數名(參數1,參數2) { //用關鍵字function來聲明函數
這里要執行的代碼
}
函數名(參數1,參數2) //調用函數
注意:javaScript 對大小寫敏感。關鍵詞 function 必須是小寫的,并且必須以與函數名稱相同的大小寫來調用函數。
函數的聲明
第一種function關鍵字:
function foo(x, y) { return x + y }
這種聲明方式可以通過函數名來調用
第二種:函數表達式
這種方式:沒有函數名而是通過變量名來代替函數名,調用函數的時候通過訪問變量來調用
var foo = function (x, y) { return x + y };
第三種:function構造函數,沒有人用
var foo = new function()
帶有返回值的函數
var foo = function (x, y) { return x + y }; var f = foo(3, 4); alert(f)
注意:在使用 return 語句時,函數會停止執行并不是整個javascript 停止,并返回指定的值 ,函數的返回值你不需要聲明他只需要使用 return 運算符后跟要返回的值即可。如果return沒有返回值,那么接收return的值等于undefined
// 普通函數定義
function f1() {
console.log("Hello world!");
}
// 帶參數的函數
function f2(a, b) {
console.log(arguments); // 內置的arguments對象
console.log(arguments.length);
console.log(a, b);
}
// 帶返回值的函數
function sum(a, b){
return a + b;
}
sum(1, 2); // 調用函數
// 匿名函數方式
var sum = function(a, b){
return a + b;
}
sum(1, 2);
// 立即執行函數
(function(a, b){
return a + b;
})(1, 2);
局部變量:
在JavaScript函數內部聲明的變量(使用 var)是局部變量,所以只能在函數內部訪問它(該變量的作用域是函數內部)。只要函數運行完畢,本地變量就會被刪除。
function myfunction() { var n = 3; //這里用var聲明 } myfunction(); console.log(n); //結果報錯,沒有定義
全局變量:
1.在函數外聲明的變量是全局變量,網頁上的所有腳本和函數都能訪問它。
n = 11; var foo = function () { console.log('foo的n', n) }; function myfunction() { console.log('myfunction的n', n) } myfunction(); foo(); console.log('全局的n',n);
結果:
myfunction的n 11 foo的n 11 全局的n 11
2.如果在函數內沒有聲明該變量時,該變量是全局變量.
function myfunction() {
n = 3; //這里沒有用var聲明,該變量就是全局變量
}
myfunction();
console.log(n);
結果:
3
變量生存周期:
JavaScript變量的生命期從它們被聲明的時間開始。
局部變量會在函數運行以后被刪除。
全局變量會在頁面關閉后被刪除。
幾個例子:
var city = "BeiJing";
function f(){
var city = "ShangHai";
function inner(){
console.log(city);
}
return inner;
}
var ret = f();
ret();
var city = "BeiJing";
function Bar() {
console.log(city);
}
function f() {
var city = "ShangHai";
return Bar;
}
var ret = f();
ret(); // 打印結果是?
浙公網安備 33010602011771號