1. 程式人生 > >JavaScript內建物件之Function

JavaScript內建物件之Function

函式是一個可以重複執行的程式碼段,Function 物件可以表示開發者定義的任何函式,函式實際上就是功能完整的物件。

一、函式的定義

  • 由關鍵字function 定義
  • 函式名的定義規則與識別符號一致,大小寫敏感
  • 可以使用變數、常量或表示式作為函式的引數
  • 有返回值必須使用 return(return 語句也可以終止函式的執行)
    function 函式名([引數]){
        函式體;
        return 返回值;
    }

     

二、函式的呼叫

  • 函式可以通過其名字加上括號中的引數進行呼叫
  • 函式如果有多個引數,則引數之間用逗號隔開

如果函式有返回值,則可以宣告變數接收即可

var result = sum(22,33);
alert(result);  //55
function sum(num1,num2){
    return num1+num2;
}

三、arguments物件

  • arguments 是一種特殊的物件,在函式程式碼中,表示函式的引數陣列
  • 在函式程式碼中,可以使用 arguments 訪問所有引數
  • arguments.length:函式的引數個數
  • arguments[i]:第 i 個引數
function methods(){
    alert(arguments.length); //3
    alert(arguments[0]); //12
}
methods(12,23,34);

四、使用Function 物件建立函式

  • 使用Function 物件直接建立函式

var functionName = new Function(arg1,...argN,functionBody);

var add = new Function("x","y","return(x+y);");
var result = add(2,3);
alert(result); //5
alert(add); //彈出方法的文字
/*function anonymous(x,y
) {
return(x+y);
}*/

五、匿名函式

  • 建立匿名函式

var func = function(arg1,...argN){ functionBody; }

var add = function(x,y){
    return x+y;
};
var result = add(2,3);
alert(result); //5
alert(add) //彈出方法的文字
/*
function(x,y){
    return x+y;
}
*/

六、全域性函式概述

  • 全域性函式可用於所有的JavaScript物件
  • 常用的全域性函式有:parseInt/parseFloat、isNaN、eval、decodeURI/encodeURI 等

1. eval函式

  eval 函式用於計算某個字串,以得到結果;或者用於執行其中的JavaScript 程式碼

  • 只接受原始字串作為引數

如果引數中沒有合法的表示式和與語句,則丟擲異常

var str = "2+3";
alert(str); //2+3
alert(eval(str)); //5

var str1 = "alert('hello');";
eval(str1); //hello

2. encodeURI 與 decodeURI

  • encodeURI():把字串作為 URI 進行編碼

decodeURI():對 encodeURI() 函式編碼過的URI進行解碼

var str = "http://wwww.baidu.com";
var e1 = encodeURI(str);
alert(e1);

var e2 = decodeURI(e1);
alert(e2);