Baseline Widely available
ëë¨¸ì§ ë§¤ê°ë³ì 구문ì ì¬ì©íë©´ í¨ìê° ì í´ì§ì§ ìì ìì 매ê°ë³ì를 ë°°ì´ë¡ ë°ì ì ììµëë¤. JavaScriptìì ê°ë³í í¨ì를 ííí ë ì¬ì©í©ëë¤.
ìëí´ ë³´ê¸°function sum(...theArgs) {
let total = 0;
for (const arg of theArgs) {
total += arg;
}
return total;
}
console.log(sum(1, 2, 3));
// Expected output: 6
console.log(sum(1, 2, 3, 4));
// Expected output: 10
구문
function f(a, b, ...theArgs) {
// ...
}
ì¤ëª
í¨ìì ë§ì§ë§ 매ê°ë³ì ìì "...
"(ì¸ ê°ì U+002E FULL STOP 문ì)를 ë¶ì´ë©´ (ì¬ì©ìê° ì ê³µí) 모ë íì 매ê°ë³ì를 íì¤ JavaScript ë°°ì´ì ë£ëë¡ ì§ì í©ëë¤. ë§ì§ë§ 매ê°ë³ìë§ ëë¨¸ì§ ë§¤ê°ë³ìë¡ ì¤ì í ì ììµëë¤.
function myFun(a, b, ...manyMoreArgs) {
console.log("a", a);
console.log("b", b);
console.log("manyMoreArgs", manyMoreArgs);
}
myFun("one", "two", "three", "four", "five", "six");
// ì½ì ì¶ë ¥:
// a, one
// b, two
// manyMoreArgs, [three, four, five, six]
ë¹ ë¥¸ 참조
í¨ì ì ììë íëì ...
ë§ ì¡´ì¬í ì ììµëë¤.
foo(...one, ...wrong, ...wrong);
ëë¨¸ì§ ë§¤ê°ë³ìë ë°ëì í¨ì ì ìì ë§ì§ë§ 매ê°ë³ìì¬ì¼ í©ëë¤.
foo(...wrong, arg2, arg3);
foo(arg1, arg2, ...correct);
ëë¨¸ì§ ë§¤ê°ë³ìì arguments
ê°ì²´ì ì°¨ì´
ëë¨¸ì§ ë§¤ê°ë³ìì arguments
ê°ì²´ ì¬ì´ìë ì¸ ê°ì 주ì ì°¨ì´ê° ììµëë¤.
arguments
ê°ì²´ë ì¤ì ë°°ì´ì´ ìëëë¤. ê·¸ë¬ë ëë¨¸ì§ ë§¤ê°ë³ìë Array
ì¸ì¤í´ì¤ì´ë¯ë¡ sort
, map
, forEach
, pop
ë±ì ë©ìë를 ì§ì ì ì©í ì ììµëë¤.arguments
ê°ì²´ë callee
ìì±ê³¼ ê°ì ì¶ê° 기ë¥ì í¬í¨í©ëë¤....restParam
ì íì 매ê°ë³ìë§ ë°°ì´ì í¬í¨íë¯ë¡ ...restParam
ì´ì ì ì§ì ì ìí 매ê°ë³ìë í¬í¨íì§ ììµëë¤. ê·¸ë¬ë arguments
ê°ì²´ë, ...restParam
ì ê° í목ê¹ì§ ëí´ ëª¨ë 매ê°ë³ì를 í¬í¨í©ëë¤.ëë¨¸ì§ ë§¤ê°ë³ìë ë¤ìì ì¸ì를 ë°°ì´ë¡ ë³ííë ê³¼ì ì ë³´ì¼ë¬íë ì´í¸ ì½ë를 ì¤ì´ê¸° ìí´ ëì ëìµëë¤.
// ëë¨¸ì§ ë§¤ê°ë³ì ì´ì ì "arguments"를 ì¼ë° ë°°ì´ë¡ ë³ííë ë°©ë²
function f(a, b) {
let normalArray = Array.prototype.slice.call(arguments);
// -- ëë --
let normalArray = [].slice.call(arguments);
// -- ëë --
let normalArray = Array.from(arguments);
let first = normalArray.shift(); // ëì, 첫 ë²ì§¸ 매ê°ë³ì ë°í
let first = arguments.shift(); // ì¤ë¥, argumentsë ì¤ì ë°°ì´ì´ ìë
}
// ì´ì ë ëë¨¸ì§ ë§¤ê°ë³ì를 ì¬ì©í´ ì½ê² ë°°ì´ë¡ ê°ì ¸ì¬ ì ìì
function f(...args) {
let normalArray = args;
let first = normalArray.shift(); // ëì, 첫 ë²ì§¸ 매ê°ë³ì ë°í
}
ìì ëë¨¸ì§ ë§¤ê°ë³ì ì¬ì©í기
ìë ìì ìì, 첫 ë²ì§¸ ì¸ìë a
, ë ë²ì§¸ ì¸ìë b
ë¡ ë§µíëë¯ë¡ ì´ ë ê°ì ì¸ìë ì¼ë°ì ì¸ ë°©ë²ì¼ë¡ ì¬ì©í ì ììµëë¤.
ê·¸ë¬ë ì¸ ë²ì§¸ ì¸ìì¸ manyMoreArgs
ë ì
, ë·, ë¤ì¯, ì¬ì¯, ... në²ì§¸ ì¸ìê¹ì§, ì¬ì©ìê° ì ê³µí ë§í¼ì ì¸ì를 í¬í¨í ë°°ì´ì
ëë¤.
function myFun(a, b, ...manyMoreArgs) {
console.log("a", a);
console.log("b", b);
console.log("manyMoreArgs", manyMoreArgs);
}
myFun("one", "two", "three", "four", "five", "six");
// a, "one"
// b, "two"
// manyMoreArgs, ["three", "four", "five", "six"] <-- ë°°ì´ìì 주목
매ê°ë³ì를 ì¸ ê°ë§ ì ê³µíëë¼ë ë§ì§ë§ ì¸ìë ì¬ì í ë°°ì´ì¸ ê²ì íì¸í ì ììµëë¤.
// ìì ì ìí í¨ì를 ê·¸ëë¡ ì¬ì©
myFun("one", "two", "three");
// a, "one"
// b, "two"
// manyMoreArgs, ["three"] <-- ììê° íëì§ë§ ì¬ì í ë°°ì´ì
ê·¸ë¦¬ê³ ìëìì 매ê°ë³ì를 ë ê°ë§ ì ê³µíì§ë§, manyMoreArgs
ë ì¬ì í (ë¹) ë°°ì´ì
ëë¤.
// ìì ì ìí í¨ì를 ê·¸ëë¡ ì¬ì©
myFun("one", "two");
// a, "one"
// b, "two"
// manyMoreArgs, [] <-- ì¬ì í ë°°ì´
매ê°ë³ì 길ì´
theArgs
ê° ë°°ì´ì´ë¯ë¡, length
ìì±ì ì¬ì©íë©´ 길ì´ë¥¼ ììë¼ ì ììµëë¤.
function fun1(...theArgs) {
console.log(theArgs.length);
}
fun1(); // 0
fun1(5); // 1
fun1(5, 6, 7); // 3
ëë¨¸ì§ ë§¤ê°ë³ì를 ì¼ë° 매ê°ë³ìì í¨ê» ì¬ì©í기
ì´ ìì ììë 첫 ë²ì§¸ ì´íì 모ë 매ê°ë³ì를 ë°°ì´ì 모ì í, ê°ê°ì ê°ì 첫 ë²ì§¸ 매ê°ë³ìë¡ ê³±í 결과를 ë°íí©ëë¤.
function multiply(multiplier, ...theArgs) {
return theArgs.map((element) => {
return multiplier * element;
});
}
let arr = multiply(2, 15, 25, 42);
console.log(arr); // [30, 50, 84]
ëë¨¸ì§ ë§¤ê°ë³ìë ì¤ì ë°°ì´, arguments
ë ì ì¬ ë°°ì´
ëë¨¸ì§ ë§¤ê°ë³ìììë Array
ë©ìë를 ì¬ì©í ì ìì§ë§, arguments
ê°ì²´ììë ì¬ì©í ì ììµëë¤.
function sortRestArgs(...theArgs) {
let sortedArgs = theArgs.sort();
return sortedArgs;
}
console.log(sortRestArgs(5, 3, 7, 1)); // 1, 3, 5, 7
function sortArguments() {
let sortedArgs = arguments.sort();
return sortedArgs;
}
console.log(sortArguments(5, 3, 7, 1));
// TypeError ë°ì (arguments.sort is not a function)
arguments
ê°ì²´ì Array
ë©ìë를 ì¬ì©íë ¤ë©´ ì°ì arguments
를 ì¤ì ë°°ì´ë¡ ë³íí´ì¼ í©ëë¤.
function sortArguments() {
let args = Array.from(arguments);
let sortedArgs = args.sort();
return sortedArgs;
}
console.log(sortArguments(5, 3, 7, 1)); // 1, 3, 5, 7
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± í¨ê» 보기
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