DEV Community

Discussion on: ES6 Mini Crash Course: How to Write Modern JavaScript

Collapse
 
mehdiraash profile image
Mehdi Raash • Edited

[...someVariable] it's actually spread attribute not operator.

... are called spread attributes which, as the name represents, it allows an expression to be expanded.

var parts = ['two', 'three']
var numbers = ['one', ...parts, 'four', 'five']; // ["one", "two", "three", "four", "five"]

And in this case (I'm going to simplify it).

// Just assume we have an







Thanks for the recap
Collapse
 
olalonde profile image
Oli Lalonde

The term "spread attribute" is mostly used by React/JSX. Not that it really matters, but the most correct terminology would probably just be "spread syntax" (the ECMAScript spec only refers to it as "SpreadElement" in its grammar).

Collapse
 
chrisachard profile image
Chris Achard

Interesting... heh - so, on that page it's called all four of these things:

  • Spread attribute
  • Spread operator
  • Spread syntax
  • Spread notation

... and it seems to all refer to the same thing :)

I've also found "official" docs calling it at least three of those things 🤣

Is there an actual "official, for real" source for what it's called?

Collapse
 
mehdiraash profile image
Mehdi Raash

I believe, operators need operand(s).

ECMA divided this topic to:

  1. Arithmetic Operators
  2. Comparison Operators
  3. Logical Operators
  4. Assignment Operators
  5. Conditional Operators
Thread Thread
 
chrisachard profile image
Chris Achard

Hm, interesting. Does the variable that the three dots are on not count as an operand? (I don't know what the formal definition is)

Thread Thread
 
mehdiraash profile image
Mehdi Raash

Somehow yes, but I think because this '...' thing introduced the time that syntactic sugar came up to JS so they tend to keep it as just helper syntax, some developers don't like it to be called as an operator because of other programming languages same debate.(some folks in this way would say one language has got more operators to another...:-))

Thread Thread
 
chrisachard profile image
Chris Achard

Got, it (I think :) ). Interesting! I wasn't aware of the debate over the "operator" word. Thanks :)