Three dots that look identical: one marks omitted words, the other expands a value — and pasting the wrong one breaks the code.
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.
The typographic ellipsis marks omitted words; three separate full stops in code expand a value. An ellipsis character pasted into code does not parse.
Drawn from the visual attributes recorded for each symbol. Only traits the two records disagree about are listed.
| Trait | Ellipsis | Spread operator |
|---|---|---|
| Symmetry | vertical | horizontal |
| Ellipsis | Spread operator | |
|---|---|---|
| Characters | One | Three |
| Meaning | Words omitted | Expand a value into its elements |
| Parses as code | No | Yes |
| Also does the reverse job | No | Yes — gathers, in a parameter list |
| Relationship (from Symbolwise's records) | Commonly confused with Spread operator — The typographic ellipsis marks omitted words; three separate full stops in code expand a value. An ellipsis character pasted into code does not parse. | Commonly confused with Ellipsis — The typographic ellipsis marks omitted words; the spread operator is three separate full stops that expand a value. |
Unicode Code Chart: General Punctuation (U+2000–U+206F)
The Unicode Consortium · retrieved 2026-07-30
Authoritative for the character's code point, name and block only. Unicode assigns identity; it does not define what a symbol means in use.
Wikipedia · retrieved 2026-07-30
Tertiary reference. Used for widely-agreed identity and origin summary, not for contested detail or exact dates.
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.
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.
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.
Check where the dot sits. A dot immediately to the right of the notehead adds half the note's value again — a dotted half note lasts three beats. A dot directly above or below the head means staccato: play it short and detached. One dot, two opposite instructions, and only position distinguishes them.