真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用JavaScript中的arguments對(duì)象

本篇文章為大家展示了如何使用JavaScript中的arguments對(duì)象,代碼簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)主營(yíng)新邵網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app開發(fā)定制,新邵h5微信小程序開發(fā)搭建,新邵網(wǎng)站營(yíng)銷推廣歡迎新邵等地區(qū)企業(yè)咨詢

arguments 是一個(gè)類似數(shù)組的對(duì)象, 對(duì)應(yīng)于傳遞給函數(shù)的參數(shù)。

語(yǔ)法

arguments

描述

arguments對(duì)象是所有函數(shù)中可用的局部變量。你可以使用arguments對(duì)象在函數(shù)中引用函數(shù)的參數(shù)。此對(duì)象包含傳遞給函數(shù)的每個(gè)參數(shù)的條目,第一個(gè)條目的索引從0開始。例如,如果一個(gè)函數(shù)傳遞了三個(gè)參數(shù),你可以參考它們?nèi)缦拢?/p>

arguments[0]
arguments[1]
arguments[2]

參數(shù)也可以被設(shè)置:

arguments[1] = 'new value';

arguments對(duì)象不是一個(gè) Array 。它類似于數(shù)組,但除了 長(zhǎng)度之外沒(méi)有任何數(shù)組屬性。例如,它沒(méi)有 pop 方法。但是它可以被轉(zhuǎn)換為一個(gè)真正的數(shù)組::

let args = Array.prototype.slice.call(arguments); 
let args = [].slice.call(arguments);

你還可以使用 Array.from()方法或 spread 運(yùn)算符將 arguments 轉(zhuǎn)換為真正的數(shù)組:

let args = Array.from(arguments);
let args = [...arguments];

對(duì)參數(shù)使用slice會(huì)阻止某些JavaScript引擎中的優(yōu)化 (比如 V8 引擎)。

如果你關(guān)心它們,嘗試通過(guò)遍歷arguments對(duì)象來(lái)構(gòu)造一個(gè)新的數(shù)組。

另一種方法是使用 被忽視的/鄙視/輕視,/看不起 Array構(gòu)造函數(shù)作為一個(gè)函數(shù):

let args = (
arguments.length === 1 ? [arguments[0]] : 
Array.apply(null, arguments)
);

如果 Array generics 可用的話,下面的代碼可以作為替代

var args = Array.slice(arguments);

arguments 對(duì)象僅在函數(shù)內(nèi)部有效,在函數(shù)外部調(diào)用 arguments 對(duì)象會(huì)出現(xiàn)一個(gè)錯(cuò)誤。

arguments的typeof返回'object'。

console.log(typeof arguments); // 'object'

可以使用索引來(lái)確定各個(gè)arguments的類型。

console.log(typeof arguments[0]); 
//這將返回單個(gè)參數(shù)的typeof。

如果你調(diào)用一個(gè)函數(shù),當(dāng)這個(gè)函數(shù)的參數(shù)數(shù)量比它顯式聲明的參數(shù)數(shù)量更多的時(shí)候,你就可以使用 arguments 對(duì)象。這個(gè)技術(shù)對(duì)于參數(shù)數(shù)量是一個(gè)可變量的函數(shù)來(lái)說(shuō)比較有用。 你可以用 arguments.length 來(lái)得到參數(shù)的數(shù)量,然后可以用 arguments object 來(lái)對(duì)每個(gè)參數(shù)進(jìn)行處理。 (想要得到函數(shù)簽名的參數(shù)數(shù)量, 請(qǐng)使用 Function.length 屬性。)

屬性

arguments.callee
// 指向當(dāng)前執(zhí)行的函數(shù)。
arguments.caller 
// 指向調(diào)用當(dāng)前函數(shù)的函數(shù)。
arguments.length
// 指向傳遞給當(dāng)前函數(shù)的參數(shù)數(shù)量。

例子

定義一個(gè)連接幾個(gè)字符串的函數(shù)

這個(gè)例子定義了一個(gè)函數(shù)來(lái)連接字符串。這個(gè)函數(shù)唯一正式聲明了的參數(shù)是一個(gè)字符串,該參數(shù)指定一個(gè)字符作為銜接點(diǎn)來(lái)連接字符串。該函數(shù)定義如下:

function myConcat(separator) {
  var args = Array.prototype.slice.call(arguments, 1);  
  return args.join(separator);
}

你可以傳遞任意數(shù)量的參數(shù)到該函數(shù),然后該函數(shù)會(huì)將每個(gè)參數(shù)作為一個(gè)條目來(lái)創(chuàng)建一個(gè)列表。

myConcat(", ", "red", "orange", "blue");
// returns "red, orange, blue"
myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
// returns "elephant; giraffe; lion; cheetah"
myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
// returns "sage. basil. oregano. pepper. parsley"

定義一個(gè)創(chuàng)建HTML列表的方法

這個(gè)例子定義了一個(gè)函數(shù)通過(guò)一個(gè)字符串來(lái)創(chuàng)建HTML列表。這個(gè)函數(shù)唯一正式聲明了的參數(shù)是一個(gè)字符。當(dāng)該參數(shù)為 "u" 時(shí),創(chuàng)建一個(gè)無(wú)序列表 (項(xiàng)目列表);當(dāng)該參數(shù)為 "o" 時(shí),則創(chuàng)建一個(gè)有序列表 (編號(hào)列表)。該函數(shù)定義如下:

function list(type) {
  var result = "<" + type + "l>
  • "; var args = Array.prototype.slice.call(arguments, 1); result += args.join("
  • "); result += "
  • "; // end list return result; }

    你可以傳遞任意數(shù)量的參數(shù)到該函數(shù),然后該函數(shù)會(huì)將每個(gè)參數(shù)作為一個(gè)條目添加到第一個(gè)參數(shù)指定類型的列表當(dāng)中。

    var listHTML = list("u", "One", "Two", "Three");
    /* listHTML is:
    "
    • One
    • Two
    • Three
    " */

    注意

    ES6中的箭頭函數(shù)沒(méi)有自己的 arguments 對(duì)象,不過(guò)在大多數(shù)情形下,rest參數(shù)可以給出一個(gè)解決方案:

    let a;
    const fn = (...rest) => Array.prototype.slice.call(rest, 1);
    a = fn(1, 2); // [2]

    上述內(nèi)容就是如何使用JavaScript中的arguments對(duì)象,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


    網(wǎng)站題目:如何使用JavaScript中的arguments對(duì)象
    標(biāo)題來(lái)源:http://weahome.cn/article/psoedo.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部