Baseline Widely available *
arguments
æ¯ä¸ä¸ªå¯¹åºäºä¼ éç»å½æ°çåæ°çç±»æ°ç»å¯¹è±¡ã
function func1(a, b, c) {
console.log(arguments[0]);
// Expected output: 1
console.log(arguments[1]);
// Expected output: 2
console.log(arguments[2]);
// Expected output: 3
}
func1(1, 2, 3);
æè¿°
夿³¨ï¼ å¦æä½ ç¼åå ¼å®¹ ES6 ç代ç ï¼é£ä¹ä¼å æ¨èä½¿ç¨ å©ä½åæ°
夿³¨ï¼ âç±»æ°ç»âæå³ç arguments
æ é¿åº¦
屿§ å¹¶ä¸å±æ§çç´¢å¼æ¯ä»é¶å¼å§çï¼ä½æ¯å®æ²¡æ Array
ç å
ç½®æ¹æ³ï¼ä¾å¦ forEach()
å map()
齿¯æ²¡æçã详æ
å¯ä»¥ç §Description.
arguments
å¯¹è±¡æ¯ææï¼éç®å¤´ï¼å½æ°ä¸é½å¯ç¨çå±é¨åéãä½ å¯ä»¥ä½¿ç¨arguments
对象å¨å½æ°ä¸å¼ç¨å½æ°çåæ°ãæ¤å¯¹è±¡å
å«ä¼ éç»å½æ°çæ¯ä¸ªåæ°ï¼ç¬¬ä¸ä¸ªåæ°å¨ç´¢å¼ 0 å¤ãä¾å¦ï¼å¦æä¸ä¸ªå½æ°ä¼ éäºä¸ä¸ªåæ°ï¼ä½ å¯ä»¥ä»¥å¦ä¸æ¹å¼å¼ç¨ä»ä»¬ï¼
arguments[0];
arguments[1];
arguments[2];
éè¿ç´¢å¼èµå¼
åæ°ä¹å¯ä»¥è¢«è®¾ç½®ï¼
arguments[1] = "new value";
arguments
å¯¹è±¡ä¸æ¯ä¸ä¸ª Array
ãå®ç±»ä¼¼äºArray
ï¼ä½é¤äº length 屿§åç´¢å¼å
ç´ ä¹å¤æ²¡æä»»ä½Array
屿§ãä¾å¦ï¼å®æ²¡æ pop æ¹æ³ã使¯å®å¯ä»¥è¢«è½¬æ¢ä¸ºä¸ä¸ªçæ£çArray
ï¼
var args = Array.prototype.slice.call(arguments);
var args = [].slice.call(arguments);
// ES2015
const args = Array.from(arguments);
const args = [...arguments];
è¦åï¼ å¯¹åæ°ä½¿ç¨ slice ä¼é»æ¢æäº JavaScript 弿ä¸çä¼å (æ¯å¦ V8 - æ´å¤ä¿¡æ¯)ãå¦æä½ å
³å¿æ§è½ï¼å°è¯éè¿éå arguments å¯¹è±¡æ¥æé ä¸ä¸ªæ°çæ°ç»ãå¦ä¸ç§æ¹æ³æ¯ä½¿ç¨è¢«å¿½è§çArray
æé 彿°ä½ä¸ºä¸ä¸ªå½æ°ï¼
var args =
arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);
妿è°ç¨çåæ°å¤äºæ£å¼å£°ææ¥åçåæ°ï¼åå¯ä»¥ä½¿ç¨arguments
对象ãè¿ç§ææ¯å¯¹äºå¯ä»¥ä¼ éå¯åæ°éçåæ°ç彿°å¾æç¨ãä½¿ç¨ arguments.length
æ¥ç¡®å®ä¼ éç»å½æ°åæ°ç个æ°ï¼ç¶å使ç¨arguments
对象æ¥å¤çæ¯ä¸ªåæ°ãè¦ç¡®å®å½æ°ç¾åä¸ï¼è¾å
¥ï¼åæ°çæ°éï¼è¯·ä½¿ç¨Function.length
屿§ã
typeof
typeof åæ°è¿å 'object'ã
console.log(typeof arguments); // 'object'
// arguments 对象åªè½å¨å½æ°å
使ç¨
function test(a) {
console.log(a, Object.prototype.toString.call(arguments));
console.log(arguments[0], arguments[1]);
console.log(typeof arguments[0]);
}
test(1);
/*
1 "[object Arguments]"
1 undefined
number
*/
å¯ä»¥ä½¿ç¨ç´¢å¼ç¡®å®åä¸ªåæ°çç±»åã
console.log(typeof arguments[0]); //this will return the typeof individual arguments.
å¯¹åæ°ä½¿ç¨æ©å±è¯æ³
ä½ è¿å¯ä»¥ä½¿ç¨Array.from()
æ¹æ³ææ©å±è¿ç®ç¬¦å°åæ°è½¬æ¢ä¸ºç宿°ç»ï¼
var args = Array.from(arguments);
var args = [...arguments];
屿§
arguments.callee
æååæ°æå±çå½åæ§è¡ç彿°ã
arguments.length
ä¼ éç»å½æ°çåæ°æ°éã
arguments[Symbol.iterator]
è¿åä¸ä¸ªæ°çæ°ç»è¿ä»£å¨å¯¹è±¡ï¼è¯¥å¯¹è±¡å å«åæ°ä¸æ¯ä¸ªç´¢å¼çå¼ã
function add() {
var sum = 0,
len = arguments.length;
for (var i = 0; i < len; i++) {
sum += arguments[i];
}
return sum;
}
add(); // 0
add(1); // 1
add(1, 2, 3, 4); // 10
å®ä¹è¿æ¥å符串ç彿°
è¿ä¸ªä¾åå®ä¹äºä¸ä¸ªå½æ°æ¥è¿æ¥å符串ãè¿ä¸ªå½æ°å¯ä¸æ£å¼å£°æäºçåæ°æ¯ä¸ä¸ªå符串ï¼è¯¥åæ°æå®ä¸ä¸ªå符ä½ä¸ºè¡æ¥ç¹æ¥è¿æ¥å符串ãè¯¥å½æ°å®ä¹å¦ä¸ï¼
function myConcat(separator) {
var args = Array.prototype.slice.call(arguments, 1);
return args.join(separator);
}
ä½ å¯ä»¥ä¼ éä»»ææ°éçåæ°å°è¯¥å½æ°ï¼å¹¶ä½¿ç¨æ¯ä¸ªåæ°ä½ä¸ºå表ä¸ç项å建å表ã
// returns "red, orange, blue"
myConcat(", ", "red", "orange", "blue");
// returns "elephant; giraffe; lion; cheetah"
myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
// returns "sage. basil. oregano. pepper. parsley"
myConcat(". ", "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>"
*/
å©ä½åæ°ãé»è®¤åæ°åè§£æåæ°
arguments
对象å¯ä»¥ä¸å©ä½åæ°ãé»è®¤åæ°åè§£æåæ°ç»å使ç¨ã
function foo(...args) {
return args;
}
foo(1, 2, 3); // [1,2,3]
å¨ä¸¥æ ¼æ¨¡å¼ä¸ï¼å©ä½åæ°ãé»è®¤åæ°åè§£æåæ°çåå¨ä¸ä¼æ¹å arguments
对象çè¡ä¸ºï¼ä½æ¯å¨éä¸¥æ ¼æ¨¡å¼ä¸å°±ææä¸åäºã
å½éä¸¥æ ¼æ¨¡å¼ä¸ç彿°æ²¡æå
å«å©ä½åæ°ãé»è®¤åæ°åè§£æï¼é£ä¹arguments
对象ä¸çå¼ä¼è·è¸ªåæ°çå¼ï¼åä¹äº¦ç¶ï¼ãçä¸é¢ç代ç ï¼
function func(a) {
arguments[0] = 99; // æ´æ°äº arguments[0] åæ ·æ´æ°äº a
console.log(a);
}
func(10); // 99
å¹¶ä¸
function func(a) {
a = 99; // æ´æ°äº a åæ ·æ´æ°äº arguments[0]
console.log(arguments[0]);
}
func(10); // 99
å½éä¸¥æ ¼æ¨¡å¼ä¸ç彿°æå
å«å©ä½åæ°ãé»è®¤åæ°åè§£æï¼é£ä¹arguments
对象ä¸çå¼ä¸ä¼è·è¸ªåæ°çå¼ï¼åä¹äº¦ç¶ï¼ãç¸åï¼arguments
åæ äºè°ç¨æ¶æä¾çåæ°ï¼
function func(a = 55) {
arguments[0] = 99; // updating arguments[0] does not also update a
console.log(a);
}
func(10); // 10
å¹¶ä¸
function func(a = 55) {
a = 99; // updating a does not also update arguments[0]
console.log(arguments[0]);
}
func(10); // 10
å¹¶ä¸
function func(a = 55) {
console.log(arguments[0]);
}
func(); // undefined
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4