[TOC]
>[info]函數是由事件驅動的或者當它被調用時執行的可重復使用的代碼塊。(將完成某一特定功能的代碼集合起來,可以重復使用的代碼塊。)
**優點**
1. 使程序更加簡潔
2. 邏輯更有條理
3. 調用更方便
4. 維護更加容易
## 函數的創建
### 基本語法
~~~
<script type="text/javascript">
function myFunction(){
alert("Hello World!");
}
</script>
~~~
### 字面量定義
~~~
<script type="text/javascript">
var myFunction = function () {
alert("Hello World!");
}
</script>
~~~
## 函數的調用
>[info]通過括號來調用:函數名()
>[info]通過觸發事件來調用
~~~
<script type="text/javascript">
var myFunction = function () {
alert("Hello World!");
}
myFunction();
</script>
<div id="box" onclick="myFunction()"></div>
~~~
** 注意事項**
1. 如果兩個函數的命名相同,后面的將會覆蓋前面的函數。
2. 以基本語法聲明的函數,會在頁面載入的時候提前解析到內存中, 以便調用。所以可以在函數的前面調用。但是以字面量形式命名的函數,會在執行到他的時候,才進行賦值。 所以只能在函數的后面調用
3. 在不同的<script></script>塊中,因為瀏覽器解析的時候是分塊 解析的,所以前面的塊不能調用后面塊的函數,所以在不同的塊 之間調用函數的時候,應該先定義后調用。
## 函數的參數
>[info]在調用函數時,您可以向其傳遞值,這些值被稱為參數。這些參數可以在函數中使用。
您可以發送任意多的參數,由逗號 (,) 分隔:
~~~
<script type="text/javascript">
myFunction(argument1,argument2)
//實參:調用函數的時候,在括號中傳入的變量或值叫做 實參。
</script>
~~~
當您聲明函數時,請把參數作為變量來聲明:
~~~
<script type="text/javascript">
function myFunction(var1,var2){
//形參:在定義函數的時候,函數括號中定義的變量叫做形參。用來接受實參的。
//這里是要執行的代碼
}
</script>
~~~
## 函數返回值
>[info]有時,我們會希望函數將值返回調用它的地方。通過使用 return 語句就可以實現。在使用 return 語句時,函數會停止執行,并返回指定的值。
~~~
<script type="text/javascript">
function myFunction(){
var x=5;
return x;
}
var myVar=myFunction();//這里可以接到函數的返回值5;
</script>
~~~
>[danger]注意:如果函數沒有返回值,那么這個函數的值就會自動的賦值為undefined,函數中可以寫多個return,遇到一個return就會停止執行。
## 變量的作用域
>[info]作用域:指變量在代碼中的作用范圍。
### 全局變量
>[info]在函數外聲明的變量是全局變量,網頁上的所有腳本和函數都能訪問它。
### 局部變量
>[info]在 JavaScript 函數內部聲明的變量(使用 var)是局部變量,所以只能在函數內部訪問它。(該變量的作用域是局部的)。
~~~
<script type="text/javascript">
var xbs ="學并思";//全局變量
function myFunction(){
var x=5; //局部變量
y = 10; //全局變量
return x;
}
var myVar=myFunction();//這里可以接到函數的返回值5;
alert(x);//函數外不能使用局部變量
alert(y);//全局變量,到處可以使用
</script>
~~~
### 函數執行順序
>[info]一個函數定義后,不調用是不會自動執行的。
如果在一個函數內遇到另外一個函數,會先執行另外一個函數,執行完之后再接著執行本函數。一個函數內部可以調用同一個函數。
- 序言
- 第一章:準備工作
- 寫在學習之前的話
- web應用開發結構
- 開發工具/環境
- 第二章:展現層面(HTML/CSS)
- HTML簡介
- HTML基礎
- HTML編碼
- HTML鏈接
- HTML圖像
- HTML列表
- HTML表單
- HTML表格(分水嶺)
- HTML 實體
- HTML框架
- CSS層疊樣式表
- CSS選擇器
- CSS文本/字體
- CSS繼承和疊加
- CSS框模型
- CSS浮動(分水嶺)
- CSS定位
- CSS背景
- CSS圖標字體
- CSS補充
- 開發技巧
- 第三章:展現層面(Javascript)
- JS簡介
- JS實現
- JS輸出交互
- JS變量
- JS數據類型
- JS運算符
- JS流程控制(分水嶺)
- JS函數
- JS數組
- JS對象(分水嶺)
- JS數組對象
- JS字符串對象
- JS數學對象
- JS日期對象
- JS BOM對象(分水嶺)
- JS DOM對象
- JS事件對象
- JS元素對象
- JS DOM節點
- 第四章:展現層面(Jquery)
- JQ簡介
- JQ使用
- JQ選擇器
- JQ篩選
- JQ屬性
- JQ-CSS
- JQ事件
- JQ文檔處理
- JQ效果
- JQ-ajax
- 第五章:邏輯/業務層面(PHP)
- PHP簡介
- PHP變量
- PHP數據類型
- PHP常量
- PHP運算符
- PHP流程控制
- PHP函數(分水嶺)
- PHP日期
- PHP數學
- PHP數組
- PHP字符串
- PHP正則表達式(分水嶺)
- PHP目錄操作
- PHP文件
- PHP上傳/下載
- PHP面向對象(分水嶺)
- PHP圖像處理
- PHP會話控制
- Ajax異步處理
- PHPMysql擴展
- PHPMysqli擴展
- PHPPdo擴展
- PHP接口
- PHP命名空間
- 第六章:邏輯/業務層面(框架設計)
- 第七章:存儲層面(mysql)
- Mysql基礎
- Mysql Sql簡介
- Mysql數據庫
- Mysql數據類型
- Mysql數據表
- Mysql操作記錄
- Mysql查詢
- Mysql修改表結構
- Mysql日期與時間
- Mysql分組統計
- Mysql多表查詢
- Mysql安全
- Mysql存儲引擎
- Mysql事務
- Mysql視圖
- Mysql觸發器
- Mysql存儲過程
- Mysql存儲函數
- Mysql優化
- 第八章:服務器(Linux)
- Linux介紹與安裝
- Shell
- 目錄與文件操作
- VIM編輯器使用
- 帳號管理
- SUDO
- 權限控制
- 壓縮與打包
- 軟件安裝
- 計劃任務
- 進程管理
- 寶塔Linux面板