arguments 屬性:指向一個類似數組 但不是數組的對象,存儲的是實際傳遞給函數的參數,而不局限于函數聲明所定義的參數列表
示例代碼:
function show(a,b)//定義show函數 { if(arguments.length==2)//如果實際輸入兩個值 alert(a+b); else if(arguments.length==3)//如果實際輸入3個值 alert(arguments[0]+" "+arguments[1]+" "+arguments[2]); //彈框輸出 輸入的三個值 } show("hello","world","haha"); alert("show函數的長度:"+show.length); //show函數的長度效果圖:
length屬性:函數定義時所指定參數的個數
arguments中的callee屬性:它表示對函數對象本身的引用
示例代碼: 使用遞歸實現求階乘
function jie(n) { if(n==1) return 1; else return n*arguments.callee(n-1); } alert(jie(3));效果圖:
callee的優點:
當修改函數名的時候不用再去修改函數內部的函數名,arguments.callee就表示函數對象本身。
定義在函數外部的是全局變量,任何函數都可以使用; 定義在函數內部的是局部變量,只有當前函數可以使用;
示例代碼:
var a=1; function bl() { var b=2; }上述代碼中a是全局變量,b是局部變量。
特殊情況: 當局部變量和全局變量名相同,函數會如何執行?
var a=1; function bl() { var b=2; var a=3; alert(a); } bl();結果:
結果是 :函數會調用內部的局部變量
微信:
支付寶:
新聞熱點
疑難解答