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

溫馨提示×

溫馨提示×

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

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

如何使用JavaScript中的arguments對象

發布時間:2020-07-15 11:03:25 來源:億速云 閱讀:157 作者:Leah 欄目:web開發

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

arguments 是一個類似數組的對象, 對應于傳遞給函數的參數。

語法

arguments

描述

arguments對象是所有函數中可用的局部變量。你可以使用arguments對象在函數中引用函數的參數。此對象包含傳遞給函數的每個參數的條目,第一個條目的索引從0開始。例如,如果一個函數傳遞了三個參數,你可以參考它們如下:

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

參數也可以被設置:

arguments[1] = 'new value';

arguments對象不是一個 Array 。它類似于數組,但除了 長度之外沒有任何數組屬性。例如,它沒有 pop 方法。但是它可以被轉換為一個真正的數組::

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

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

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

對參數使用slice會阻止某些JavaScript引擎中的優化 (比如 V8 引擎)。

如果你關心它們,嘗試通過遍歷arguments對象來構造一個新的數組。

另一種方法是使用 被忽視的/鄙視/輕視,/看不起 Array構造函數作為一個函數:

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

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

var args = Array.slice(arguments);

arguments 對象僅在函數內部有效,在函數外部調用 arguments 對象會出現一個錯誤。

arguments的typeof返回'object'。

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

可以使用索引來確定各個arguments的類型。

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

如果你調用一個函數,當這個函數的參數數量比它顯式聲明的參數數量更多的時候,你就可以使用 arguments 對象。這個技術對于參數數量是一個可變量的函數來說比較有用。 你可以用 arguments.length 來得到參數的數量,然后可以用 arguments object 來對每個參數進行處理。 (想要得到函數簽名的參數數量, 請使用 Function.length 屬性。)

屬性

arguments.callee
// 指向當前執行的函數。
arguments.caller 
// 指向調用當前函數的函數。
arguments.length
// 指向傳遞給當前函數的參數數量。

例子

定義一個連接幾個字符串的函數

這個例子定義了一個函數來連接字符串。這個函數唯一正式聲明了的參數是一個字符串,該參數指定一個字符作為銜接點來連接字符串。該函數定義如下:

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

你可以傳遞任意數量的參數到該函數,然后該函數會將每個參數作為一個條目來創建一個列表。

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"

定義一個創建HTML列表的方法

這個例子定義了一個函數通過一個字符串來創建HTML列表。這個函數唯一正式聲明了的參數是一個字符。當該參數為 "u" 時,創建一個無序列表 (項目列表);當該參數為 "o" 時,則創建一個有序列表 (編號列表)。該函數定義如下:

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

你可以傳遞任意數量的參數到該函數,然后該函數會將每個參數作為一個條目添加到第一個參數指定類型的列表當中。

var listHTML = list("u", "One", "Two", "Three");
/* listHTML is:
"<ul><li>One</li><li>Two</li><li>Three</li></ul>"
*/

注意

ES6中的箭頭函數沒有自己的 arguments 對象,不過在大多數情形下,rest參數可以給出一個解決方案:

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

上述內容就是如何使用JavaScript中的arguments對象,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

凉城县| 宾川县| 泾阳县| 拉萨市| 天水市| 高雄县| 仁怀市| 安福县| 巴彦淖尔市| 德江县| 金华市| 临夏市| 象山县| 长武县| 南投县| 江阴市| 德江县| 黑水县| 汉沽区| 泰兴市| 恩施市| 开平市| 天全县| 丁青县| 峨眉山市| 营山县| 宁夏| 宁德市| 望城县| 卢氏县| 奉新县| 澳门| 绍兴市| 娄烦县| 永寿县| 乃东县| 洛隆县| 临颍县| 屏东县| 兴国县| 皮山县|