Rest parameter anywhere
Tab Atkins Jr.
jackalmage at gmail.com
Fri Apr 11 10:53:33 PDT 2014
On Fri, Apr 11, 2014 at 5:39 AM, Егор Николаев <termi1uc1 at gmail.com> wrote:
> Long story short:
> ```javascript
> function test( a = 1, b = 2, ...rest, c = 4, d = 5) { console.log(a, b,
> rest, c, d) }
>
> test(); // 1, 2, [], 4, 5
> test(9, 8); // 9, 8, [], 4, 5
> test(9, 8, 7, 6); // 9, 8, [], 7, 6
> test(9, 8, 7, 6, 5, 4);// 9, 8, [7, 6], 5, 4
>
> let [a = 1, b = 2, ...rest, c = 4, d = 5] = []; // a == 1, b
> == 2, rest == [], c == 4, d == 5
> let [a = 1, b = 2, ...rest, c = 4, d = 5] = [9, 8]; // a == 9, b
> == 8, rest == [], c == 4, d == 5
> let [a = 1, b = 2, ...rest, c = 4, d = 5] = [9, 8, 7, 6]; // a == 9, b
> == 8, rest == [], c == 7, d == 6
> let [a = 1, b = 2, ...rest, c = 4, d = 5] = [9, 8, 7, 6, 5, 4];// a == 9, b
> == 8, rest == [7, 6], c == 5, d == 4
> ```
You skipped the most interesting case - what to do when the list is
*almost* long enough to accommodate all of the non-rest params.
`let [a = 1, b = 2, ...rest, c = 4, d = 5] = [9, 8, 7];`
It seems, from your second test case, that a=9 and b=8, but which
variables gets a value of 7 - c or d?
~TJ
More information about the es-discuss
mailing list