1.函數聲明方式:數組
示例代碼:函數
function fu(){ console.log('一花一世界') }
2.字面量/直接量方式:spa
示例代碼:code
var fun = function(){ console.log('這是一個函數'); }; // 調用函數 -> 函數體的內容才被執行 fun();
示例代碼:生命週期
/* 調用函數 */ fu()
var v = 100;/* 定義變量,並初始化值 */ console.log(v);/* 調用變量 */ // 變量是容許被從新賦值的 v = function(){ console.log('這是一個函數'); } // v既是個變量,又是個函數 console.log(v);// 調用結果爲 [Function: v] v();/* 函數的調用 */
控制檯效果圖:
圖片
示例代碼:ip
var v2 = 200; function v2(){ console.log('這是一個函數'); } // v2是變量 - TypeError: v2 is not a function - 表示 v2 不是一個函數 console.log(v2); v2();
控制檯效果圖:
作用域
形參 : 就是定義函數後的小括號叫形參 - function fun(形參)it
實參 : 就是調用函數後的小括號叫實參 - fun(實參)io
示例代碼:
function fun(a){// 在函數中定義一個變量,但未初始化值 console.log(a); } fun(100, 200);// 爲函數中定義的變量初始化值
函數的return語句
示例代碼:
function fun(){ console.log('一花一世界'); return 100; } /* 將函數的返回值 賦值到變量中 */ var result = fun(); console.log(result); console.log(fun());/* 打印函數調用的結果 */ console.log(fun);/* 打印變量的值 */
函數的return語句
示例代碼:
function fn(){ console.log('這是return語句以前...'); return; console.log('這是return語句以後...'); } var result = fn(); console.log(result);// 100
全局做用域(函數做用域以外的範圍) - 全局變量
全局做用域與局部做用域示例代碼對比:
var v1 = 100; console.log(v1); function fun(){ /* 函數做用域 - 局部變量 * 局部變量的做用域 - 當前函數做用域 */ var v2 = 200; console.log(v1); console.log(v2); } console.log(v1); fun(); // 全局做用域不能訪問局部變量 // console.log(v2); function fn(){ console.log(v2); } fn();
局部變量 - 做用於當前函數做用域中
函數的參數 - 做用於當前函數體中
示例代碼:
var num = 200; function fun(a){ var v = 100; console.log(v + a); } fun(num);
控制檯調用圖:
示例代碼:
/* 按值傳遞 */ var num = 100;/* 定義一個全局變量 */ /* 定義一個函數 */ function fun(num){/* 形參 */ num++; console.log('這是函數內部的值: ' + num);// 101 } /* 調用指定函數 - 實參傳遞的是全局變量的值 */ fun(num);/* 實參 */ /* 調用指定全局變量 */ console.log('這是全局做用域的值: ' + num);// 100 101 var v = 200; function fn(){ v++; } fn(); console.log(v);// 201
表示在使用變量時,先調用變量,在對變量進行定義
示例代碼:
console.log(num);// undefined var num = 100;/* 定義全局變量 */ /* 定義函數 */ function fun(){ // 全局變量與局部變量同名時 - 在當前函數做用域中只能訪問局部變量 console.log(num);// undefined var num = 200;/* 定義局部變量 */ // 就近原則 console.log(num);// 200 } /* 調用函數 */ fun(); // 局部變量在全局做用域中沒法訪問 - 只能訪問全局變量 console.log(num);// 100
控制檯調用圖: