11

I'm curious what the precedence of the Spread and Rest operators are in Javascript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator

I was trying to find them on MDN's Operator Precedence table (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table) but unless they are a subcategory of an existing operator type, I don't see them. I couldn't find any other obvious documentation about it.

2
  • 1
    It had been part of that table since 2014 but I fixed it last month :-) Commented Feb 7, 2018 at 5:10
  • @Bergi: thank you! I can’t believe someone added that to the table o_O but who knows, things were still in flux in 2014 Commented Feb 7, 2018 at 15:52

1 Answer 1

21

Spread syntax is not an operator and therefore does not have a precedence.

It is part of the array literal and function call (and object literal) syntax.

Similarly, rest syntax is part of the array destructuring and function parameter (and object destructuring) syntax.

Sign up to request clarification or add additional context in comments.

7 Comments

I guess that was the source of my confusion. Thanks for the quick answer! Hopefully it is more Googleable now. I had someone mention it in code review and suggest parentheses and it made me question how it got evaluated.
Parenthesis? No, definitely not.
I was trying to see if I can do this: func(...args || []). It works
@HaiPhan Yes, you can do func(...anyExpression) where the only limitation to any expression is that it must not be a comma operator expression (which would count as an argument delimiter instead).
IIUC, This is like saying is that it has a lower precedence than all operators. It applies to the fully-evaluated expression following it up to the closing ].
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.