Three dots in a row, in code and in an interface, with nothing whatever in common.
In code, three dots before a value expand it into its elements. In an interface, three dots in a row open a menu of further actions. Both are described as 'three dots' by the people who meet them, which is the entire basis of the confusion — there is no relationship between the two.
Three dots again, in a completely different setting: in code they expand a value, in an interface they open a menu.
| Spread operator | Meatball menu symbol | |
|---|---|---|
| Where | In source code | In an interface |
| What it does | Expands a collection into its elements | Opens a menu of further actions |
| Orientation matters | No | Yes — vertical is the kebab menu |
| Defined by | ECMA-262 and equivalents | Nobody |
| Relationship (from Symbolwise's records) | Commonly confused with Meatball menu symbol — Three dots again, in a completely different setting: in code they expand a value, in an interface they open a menu. | Commonly confused with Spread operator — Three dots again, in a completely different setting: in code they expand a value, in an interface they open a menu. |
ECMA-262, ECMAScript Language Specification
Ecma International · retrieved 2026-08-01
Authoritative for JavaScript's own syntax and only for that. A construct spelled the same way in another language may behave differently, and records say which language they are describing.
Wikipedia · retrieved 2026-08-01
Tertiary reference. Used for widely-agreed identity, origin and current use, not for contested detail or exact dates.
Wikipedia · retrieved 2026-08-01
Tertiary reference. Used for widely-agreed identity, origin and current use, not for contested detail or exact dates.
Wikipedia · retrieved 2026-08-01
Tertiary reference. Used for widely-agreed identity, origin and current use, not for contested detail or exact dates.
The typographic ellipsis is a single character meaning words have been left out. The spread operator is three separate full stops that expand a collection into its elements. They render almost identically, so an ellipsis copied from a document into code does not parse — a genuinely confusing failure, because the line looks correct.
Vertical is the kebab, horizontal the meatball. That is the whole distinction, and it is a distinction in drawing rather than in meaning: both open a menu of secondary actions, and which one a product uses is house style. The food names are designer folklore, not terminology anybody defines.
Both are drawn as one continuous decorative stroke with a closed loop and a tail that crosses back over itself, which is why a description of the shape alone reaches both. The clef is far taller, spans a stave, and its spiral encircles one specific line — that encircled line is the note G, and it is the only reason the shape is drawn where it is.
As punctuation the asterisk points at a footnote or marks a required field. In a filename pattern typed at a shell it matches any run of characters, including none — and the shell expands it against real filenames before the command runs, so the command never sees the pattern at all. That expansion is the part people are surprised by.