function 函數名稱( )"小括號不可省去" { 函數體 }
/* 函數聲明方式 */ function fun() { /* 在定義函數時,函數體中的內容不會被執行 */ console.log( '啞吼吼' ); } /* 調用函數 - 使用函數名稱 * 調用函數的時候會執行函數體中的內容 */ fun();
var 函數名 = function( )"小括號不可省去" { 函數體 }
/* 字面量方式 */ var fn = function() { /* 在定義函數時,函數體中的內容不會被執行 */ console.log( '吼啞啞' ); } /* 調用函數 - 使用函數名稱 * 調用函數的時候會執行函數體中的內容 */ fn();
/* 定義函數 - 形參 */ function fun( a, b ){ /* 在參數中: 形參與實參個數相對應 * 形參的個數多於實參個數時,沒有對應實參的形參會顯示 undefined * 實參的個數多於形參個數時,沒有對應形參的實參會沒有顯示 */ console.log( a, b );// 顯示效果:a=1,b=2 } /* 調用函數 - 實參 */ fun( 1, 2 );
return語句通常會被編寫在函數體的最後面函數
function fun(){ console.log( '啊哈哈' ); return 100; } /* 調用函數 */ fun();// 顯示 啊哈哈 /* 將函數的返回值 賦值到變量中 */ var funs = fun(); /* 顯示返回值 */ console.log( funs );// 顯示 100 /* return語句不在函數體最後 */ function fn(){ console.log( '啊哈哈' ); return; console.log( '呀吼吼吼' ); } fn();// 顯示 啊哈哈 var fns = fn(); console.log( fns );// 顯示 undefined
做用域分爲(變量和函數同樣):全局做用域和局部做用域(函數做用域)code
/* 做用在全局做用域 */ var num = 100; console.log( num ); /* 同時做用在局部做用域 */ function fun() { console.log( num ); } fun(); /* 定義全局變量 */ var num1 = 100; function fn() { console.log( num1 ); /* 定義局部變量 - 只能做用於當前函數 */ var num2 = 100; console.log( num2 ); } fn(); /* 在全局做用域調用局部變量會報錯 */ console.log( num2 );// 顯示 num2 is not define
/* 定義全局函數 */ function fun(){ console.log( '啊哈哈' ); /* 定義內部函數 */ function fu(){ console.log( '呀吼吼' ); } fu(); } /* 全局做用域 */ fun(); /* 在全局做用域調用內部函數會報錯 */ fu();// 顯示 fu is not defined /* 定義另外一個全局函數 */ function fn(){ /* 函數中能夠調用全局函數 */ fun(); /* 沒法調用另外一個函數的內部函數 - 會報錯 */ fu();// 顯示 fu is not defined } fn();
/* 先調用未定義的變量,在隨後定義,語法不會報錯,會顯示 undefined */ console.log( s );//顯示結果:undefined var s ;//調用後定義 /* 從新定義並賦值 */ var s = 100; /* 顯示效果 */ console.log( s );// 100
/* 全局變量 */ var s = 100; function f ( s ) { s++;// 修改局部變量 return s;// 返回數值 } /* 定義變量顯示返回值 */ var ss = f( s ); /* 顯示函數輸出效果 */ console.log( ss );// 101 /* 顯示全局變量 */ console.log( s );// 100