定義函數的三種方式:javascript
function fnName(args){}java
var fnName = function(args){}函數
var fnName = new Funtion(args,函數體);編碼
1. arguments 對象spa
(1) 模擬函數重載code
function add(){ if(arguments.length==2){ return arguments[0] + arguments[1]; }else if(arguments.length==3){ return arguments[0] + arguments[1] + arguments[2]; } } alert(add(2,3)); //輸出:5 alert(add(2,3,4)); //輸出:9
二、變量做用域對象
JS中的做用域有兩種:全局域和函數域,分別對應着全局變量和局部變量。注:JS中不存在塊級做用域,即{}。在某個代碼塊中定義的變量(如if或for語句),它在代碼塊外是可見的。ip
1)定義局部變量時不使用var關鍵字:該局部變量被定義爲全局變量2)當全局變量與局部變量同名時,在函數域中只能訪問局部變量作用域
三、特殊函數回調函數
1)匿名函數
能夠將匿名函數做爲參數傳遞給其餘函數。這樣,接收方函數就能利用所傳遞的函數來完成某些事情 —> 匿名回調函數
能夠定義某個匿名函數來執行某些一次性任務 –> 自調函數
2)回調函數
function two(a, b, c, callback){ var i, arr = []; for(int i = 0, i < 3, i ++){ arr[i] = callback(arguments[i] * 2); } return arr; }
3.自調函數
( function(){ alert("javascript"); } )(); ------------------- ( function(name){ alert(name + "i love you!"); } )("xt");
4.預約義全局函數
encodeURI/decodeURI : 編碼解碼
encodeURICompent/decodeURICompent : 編碼解碼
。。。。。