91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript arguments對象怎么使用

發布時間:2021-07-21 10:37:37 來源:億速云 閱讀:144 作者:chen 欄目:web開發

這篇文章主要講解了“javascript arguments對象怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“javascript arguments對象怎么使用”吧!

javascript arguments對象的用法:1、獲取實參和形參的個數;2、修改實參值;3、改變實參的個數;4、檢測用戶傳遞的參數是否符合要求;5、函數的參數個數不確定時,用于訪問調用函數的實參值;6、遍歷或訪問實參的值。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

arguments 對象表示函數的實參集合,僅能夠在函數體內可見,并可以直接訪問。

arguments 對象的 length 屬性和 callee 屬性最為常用:

  • 使用 length 屬性可以獲取函數的實參個數。arguments 對象只能在函數體內可見,因此 arguments.length 也只能在函數體內使用。

  • 使用 callee 屬性可以引用當前 arguments 對象所在的函數。使用 callee 屬性可以在函數體內調用函數自身。在匿名函數中,callee 屬性比較有用。例如,利用它可以設計遞歸調用。

示例1:獲取實參和形參的個數

使用 arguments.length 屬性可以獲取函數的實參個數。使用函數對象的 length 屬性可以獲取函數的形參個數,該屬性為只讀屬性,在函數體內、體外都可以使用。

下面示例設計一個 checkArg() 函數,用來檢測一個函數的形參和實參是否一致,如果不一致則拋出異常。

function checkArg(a) {  //檢測函數實參與形參是否一致
    if (a.length != a.callee.length)  //如果實參與形參個數不同,則拋出錯誤
    throw new Error("實參和形參不一致");
}
function f(a, b) {  //求兩個數的平均值
    checkArg(arguments);   //根據arguments來檢測函數實參和形參是否一致
    return ((a * 1 ? a : 0) + (b * 1 ? b : 0)) / 2;  //返回平均值
}
console.log(f(6));  //拋出異常。調用函數f,傳入一個參數

示例2:在函數內部修改實參的值

在下面示例中使用 for 循環遍歷 arguments 對象,然后把循環變量的值傳入 arguments,以便于改變實參值。

function f() {
    for (var i = 0; i < arguments.length; i++) {  //遍歷arguments對象
        arguments[i] = i;  //修改每個實參的值
        console.log(arguments[i]);  //提示修改的實參值
    }
}
f(3, 3, 6);  //返回提示0、1、2,而不是3、3、6

示例3:改變函數實參的個數

通過修改 length 屬性值,也可以改變函數的實參個數。當 length 屬性值增大時,則增加的實參值為 undefined;如果 length 屬性值減小,則會丟棄 length 長度值之后的實參值。

function f() {
    arguments.length = 2;  //修改arguments屬性對象的length屬性值
    for (var i = 0; i < arguments.length; i ++) {
        console.log(arguments[i]);
    }
}
f(3, 3, 6);  //返回提示3、3

示例4:檢測用戶傳遞的參數是否符合要求

在下面示例中,使用 arguments.callee 獲取匿名函數,然后通過函數的 length 屬性獲取函數形參個數,最后比較實參個數與形參個數,以檢測用戶傳遞的參數是否符合要求。

function f(x,y,z) {
    var a = arguments.length();  //獲取函數實參的個數
    var b = arguments.callee.length;  //獲取函數形參的個數
    if (a != b_ {  //如果實參和形參個數不相等,則提示錯誤信息
        throw new Error("傳遞的參數不匹配");
    }else {  //如果實參和形參個數相同,則返回它們的和
        return x + y + z; 
    }
}
console.log(f(3,4,5));  //返回值12

arguments.callee 等價于函數名,在上面示例中,arguments.callee 等于 f。

arguments 對象的應用

在實際開發中,arguments 對象非常有用。靈活使用 arguments 對象,可以提升使用函數的靈活性,增強函數在抽象編程中的適應能力和糾錯能力。下面結合幾個典型示例展示 arguments 的應用。

1) 使用 arguments 對象能夠增強函數應用的靈活性。例如,如果函數的參數個數不確定,或者函數的參數個數很多,而又不想逐一定義每一個形參,則可以省略定義參數,直接在函數體內使用 arguments 對象來訪問調用函數的實參值。

示例1

下面示例定義一個求平均值的函數,該函數借助 arguments 對象來計算參數的平均值。在調用函數時,可以傳入任意多個參數。

function avg() {  //求平均值
    var num = 0, 1 = 0;  //聲明并初始化臨時變量
    for (var i = 0; i < arguments.length; i ++) {  //遍歷所有實參
        if (typeof arguments[i] != "number")  //如果參數不是數值
            continue;  //則忽略該參數值
        num += arguments[i];  //計算參數的數值之和
            1 ++;  //計算參與和運算的參數個數
    }    
    num /= 1;  //求平均值
    return num;  //返回平均值
}
console.log(avg(1,2,3,4));  //返回2.5
console.log(avg(1,2,"3",4));  //返回2.3333333333333335

示例2

在頁面設計中經常需要驗證表單輸入值,下面示例檢測文本框輸入的值是否為合法的郵箱地址。

function isEmail() {
    if (arguments.length > 1) throw new Error("只能夠傳遞一個參數");  //檢測參數個數
    var regexp = /^\w+((-\w+) | (\.\w+)) *\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)8\.[A-Za-z0-9]+$/;  //定義正則表達式
    if (arguments[0].search(regexp) != -1)  //匹配實參的值
        return true;  //如果匹配則返回true
    else 
        return false;  //如果不匹配則返回false
}
var email = "1798017447@qq.com";  //聲明并初始化郵箱地址字符串
console.log(isEmail(email));  //返回true

2) arguments 對象是偽類數組,不是數組,可以通過 length 屬性和中括號語法來遍歷或訪問實參的值。不過,通過動態調用的方法,也可以使用數組的方法,如 push、pop、slice 等。

示例3

使用 arguments 可以模擬重載。實現方法:通過 arguments.length 屬性值判斷實際參數的個數和類型,決定執行不同的代碼。

function sayHello() {
    switch(arguments.length) {
        case 0 :
            return "Hello";
        case 1 :
            return "Hello, " + arguments[0];
        case 2 :
            return (arguments[1] == "cn" ? "你好, " : "Hello, ") + arguments[0];
    };
}
console.log(sayHello());  //"Hello"
console.log(sayHello("Alex"));  //"Hello,Alex"
console.log(sayHello("Alex", "vn"));  //"你好,Alex"

示例4

下面示例使用動態調用的方法,讓 arguments 對象調用數組方法 slice(),可以把函數的參數對象轉換為數組。

function f() {
    return [].slice.apply(arguments);
}
console.log(f(1,2,3,4,5,6));  //返回[1,2,3,4,5,6]

感謝各位的閱讀,以上就是“javascript arguments對象怎么使用”的內容了,經過本文的學習后,相信大家對javascript arguments對象怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涪陵区| 行唐县| 禹州市| 基隆市| 海安县| 金门县| 涿州市| 香港| 宜春市| 莱州市| 临安市| 伊宁市| 大荔县| 闽侯县| 蒲城县| 宁化县| 宾川县| 涿鹿县| 海门市| 安西县| 曲周县| 乐陵市| 会同县| 灵武市| 咸阳市| 浪卡子县| 宣汉县| 昌都县| 会理县| 阿合奇县| 乌拉特前旗| 广汉市| 大荔县| 临桂县| 广丰县| 绩溪县| 平遥县| 临高县| 临清市| 报价| 耒阳市|