# 函數
**通過函數可以封裝任意多條語句,而且可以在任何地方、任何時候調用。**
ECMAScript中的函數使用`function`關鍵字來聲明,后跟一組參數以及函數體,這些參數在函數體內像局部變量一樣工作。
~~~
function functionName(arg0, arg1....argN) {
statements
}
~~~
函數調用會為形參提供實參的值。函數使用它們實參的值來計算返回值,稱為該函數調用表達式的值。
~~~
function test(name){
return name;
}
test('tg');
~~~
在上面的例子中,name就是形參,調用時的'tg'就是實參。
除了實參之外,每次調用還會擁有另一個值---本次調用的上下文---這就是this關鍵字的值。
我們還可以通過在函數內添加return語句來實現返回值。
注意:遇到return語句時,會立即退出函數,也就是說,return語句后面的語句不再執行。
~~~
function test(){
return 1;
alert(1); //永遠不會被執行
}
~~~
一個函數中可以包含多個return語句,而且return語句可以不帶有任何返回值,最終將返回**undefined**。
~~~
function test(num){
if(num > 2){
return num;
}else{
return ;
}
}
test(3); // 3
test(1); //undefined
~~~
如果函數掛載在一個對象上,將作為對象的一個屬性,就稱它為**對象的方法**。
~~~
var o = {
test: function(){}
}
~~~
test()就是對象o的方法。
- 前言
- 第一章 JavaScript簡介
- 第三章 基本概念
- 3.1-3.3 語法、關鍵字和變量
- 3.4 數據類型
- 3.5-3.6 操作符、流控制語句(暫略)
- 3.7函數
- 第四章 變量的值、作用域與內存問題
- 第五章 引用類型
- 5.1 Object類型
- 5.2 Array類型
- 5.3 Date類型
- 5.4 基本包裝類型
- 5.5 單體內置對象
- 第六章 面向對象的程序設計
- 6.1 理解對象
- 6.2 創建對象
- 6.3 繼承
- 第七章 函數
- 7.1 函數概述
- 7.2 閉包
- 7.3 私有變量
- 第八章 BOM
- 8.1 window對象
- 8.2 location對象
- 8.3 navigator、screen與history對象
- 第九章 DOM
- 9.1 節點層次
- 9.2 DOM操作技術
- 9.3 DOM擴展
- 9.4 DOM2和DOM3
- 第十章 事件
- 10.1 事件流
- 10.2 事件處理程序
- 10.3 事件對象
- 10.4 事件類型
- 第十一章 JSON
- 11.1-11.2 語法與序列化選項
- 第十二章 正則表達式
- 12.1 創建正則表達式
- 12.2-12.3 模式匹配與RegExp對象
- 第十三章 Ajax
- 13.1 XMLHttpRequest對象
- 你不知道的JavaScript
- 一、作用域與閉包
- 1.1 作用域
- 1.2 詞法作用域
- 1.3 函數作用域與塊作用域
- 1.4 提升
- 1.5 作用域閉包
- 二、this與對象原型
- 2.1 關于this
- 2.2 全面解析this
- 2.3 對象
- 2.4 混合對象“類”
- 2.5 原型
- 2.6 行為委托
- 三、類型與語法
- 3.1 類型
- 3.2 值
- 3.3 原生函數