国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Javascript中arguments對象詳解

2024-05-06 16:09:59
字體:
來源:轉載
供稿:網友
JavaScript不能像PHP一樣在函數參數中直接設置默認值,但是JavaScript有一個arguments可以使用,這就可以為函數參數設置默認值了
 
 

在上篇文章中我們討論了javascript中的默認參數,這篇文章,我們來討論下javascript的arguments參數對象。

如下例的一個函數,我們如何根據傳入參數的不同來做不同的處理呢?

 

復制代碼代碼如下:

function addAll () {
    // What do we do here?
}

 

// Should return 6
addAll(1, 2, 3);

// Should return 10
addAll(1, 2, 3, 4);

 

幸運的是,javascript有一個arguments對象,可以來處理上述情況。arguments對象是一個類數組對象,想了解arguments對象的詳細情況請戳這里,我們使用arguments對象來改變上例:

 

復制代碼代碼如下:

function addAll () {
    var sum = 0;

 

    for (var i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }

    return sum;
}

// Returns 6
addAll(1, 2, 3);

// Returns 10
addAll(1, 2, 3, 4);

 

上面我們說過arguments對象是一個類數組對象,下面我們來測試下:

 

復制代碼代碼如下:

function getName() {
 console.log(Array.isArray(arguments));
}

 

//will output false
getName("benjamin");

 

上述測試結果可以看出:
它不是一個數組對象,那么它和數組對象有什么不同呢?詳情請戳這里。

執行下面例子會拋出一個錯誤:

 

復制代碼代碼如下:

function sortArgs () {
    // Uncaught TypeError: undefined is not a function 
    sorted = arguments.sort()

 

    return sorted;
}
sortArgs();

 

我們可以像下面這樣把一個類數組對象轉換為數組對象:

 

復制代碼代碼如下:

function sortArgs () {
    // Convert arguments object into a real array
    var args = [].slice.call(arguments);

 

    // Now this will work!
    sorted = args.sort()

    return sorted;
}

//will output [1, 2, 3] 
console.log(sortArgs(1,3,2));

 

如果你感覺這篇文章對你有幫助,希望轉給更多需要的人。文章不妥之處,歡迎留言斧正。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 镇沅| 岳阳市| 额尔古纳市| 潞城市| 凉山| 菏泽市| 都兰县| 天水市| 东至县| 盐山县| 博野县| 娱乐| 湘乡市| 乌拉特中旗| 罗源县| 吴堡县| 大丰市| 临颍县| 竹溪县| 怀柔区| 新和县| 民县| 吴堡县| 宁津县| 昆山市| 清原| 随州市| 泊头市| 九台市| 赤城县| 虎林市| 云安县| 伽师县| 象山县| 诏安县| 错那县| 虞城县| 滦平县| 大余县| 寻乌县| 东乌|