We'd like to use analytics cookies to understand which symbols people look up, so we know what to research next. They are not used for advertising and we set none of them unless you say yes. What we store.
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.
The ampersand is a ligature of the Latin word et, still visible in some italic forms where the e and the t can be picked out. The Tironian et is a separate mark descending from a Roman shorthand, shaped like a small seven, and it is in daily public use in Ireland as the written form of 'agus'. A reader who knows only the ampersand takes the other for a numeral, which on a bilingual road sign produces a confidently wrong place name.