I think you're using less-well-supported Unicode values, which don't always have glyphs for all the code points.
Try the following characters:

  • โ˜ (0x2610 in Unicode hexadecimal [HTML decimal: ☐]): an empty (unchecked) checkbox
  • (0x2611 [HTML decimal: ☑]): the checked version of the previous checkbox
  • โœ“ (0x2713 [HTML decimal: ✓])
  • (0x2714 [HTML decimal: ✔])

Edit: There seems to be some confusion about the first symbol here, โ˜ / 0x2610. This is an empty (unchecked) checkbox, so if you see a box, that's the way it's supposed to look. It's the counterpart to / 0x2611, which is the checked version.

Answer from John Feminella on Stack Overflow
๐ŸŒ
Toptal
toptal.com โ€บ designers โ€บ htmlarrows โ€บ symbols โ€บ check-mark
Check Mark HTML Symbol, Character and Entity Codes โ€” HTML Arrows
HTML symbol, character and entity codes, ASCII, CSS and HEX values for Check Mark, plus a panoply of others.
Top answer
1 of 14
474

I think you're using less-well-supported Unicode values, which don't always have glyphs for all the code points.
Try the following characters:

  • โ˜ (0x2610 in Unicode hexadecimal [HTML decimal: ☐]): an empty (unchecked) checkbox
  • (0x2611 [HTML decimal: ☑]): the checked version of the previous checkbox
  • โœ“ (0x2713 [HTML decimal: ✓])
  • (0x2714 [HTML decimal: ✔])

Edit: There seems to be some confusion about the first symbol here, โ˜ / 0x2610. This is an empty (unchecked) checkbox, so if you see a box, that's the way it's supposed to look. It's the counterpart to / 0x2611, which is the checked version.

2 of 14
297

First off, you should realize that you don't actually need to use HTML entities โ€“ as long as your HTML document's encoding is declared properly as UTF-8, you can simply copy/paste these symbols into your file/server-side script/JavaScript/whatever.

Having said that, here's the exhaustive list of all relevant UTF-8 characters / HTML entities related to this topic:

  • โ˜ (hex: ☐ / dec: ☐): ballot box (empty, that's how it's supposed to be)
  • (hex: ☑ / dec: ☑): ballot box with check
  • โ˜’ (hex: ☒ / dec: ☒): ballot box with x
  • โœ“ (hex: ✓ / dec: ✓): check mark, equivalent to ✓ and ✓ in most browsers
  • (hex: ✔ / dec: ✔): heavy check mark
  • โœ— (hex: ✗ / dec: ✗): ballot x
  • โœ˜ (hex: ✘ / dec: ✘): heavy ballot x
  • ๐Ÿ—ธ ( hex: 🗸 / dec 🗸): light check mark (poorly supported as of 2017)
  • ( hex: ✅ / dec: ✅): white heavy check mark (mixed support as of 2017)
  • ๐Ÿ—ด ( hex: 🗴 / dec: 🗴): ballot script X (poorly supported as of 2017)
  • ๐Ÿ—ถ ( hex: 🗶 / dec: 🗶): ballot bold script X (poorly supported as of 2017)
  • โฎฝ ( hex: ⮽ / dec: ⮽): ballot box with light X (poorly supported as of 2017)
  • ๐Ÿ—ต ( hex: 🗵 / dec: 🗵): ballot box with script X (poorly supported as of 2017)
  • ๐Ÿ—น ( hex: 🗹 / dec: 🗹): ballot box with bold check (poorly supported as of 2017)
  • ๐Ÿ—ท ( hex: 🗷 / dec: 🗷): ballot box with bold script X (poorly supported as of 2017)

Checking out web fonts for tick symbols? Here's a ready to use sample for the more common ones: Aโ˜BCโ˜’Dโœ“EFโœ—Gโœ˜H -- just copy/paste this into your webfont provider's sample text box and see which fonts support what tick symbols.

๐ŸŒ
W3Schools
w3schools.com โ€บ charsets โ€บ ref_utf_dingbats.asp
HTML Unicode Dingbats
Well organized and easy to understand Web building tutorials with lots of examples of how to use HTML, CSS, JavaScript, SQL, Python, PHP, Bootstrap, Java, XML and more.
๐ŸŒ
freeCodeCamp
freecodecamp.org โ€บ news โ€บ checkmark-symbol-html-for-checkmark-unicode
Checkmark Symbol โ€“ HTML for Checkmark Unicode
April 12, 2022 - I will also show you 4 other variations of the checkmark symbol. The Unicode character for showing a checkmark is U+2713. If you decide to use this Unicode to show a checkmark in HTML and you type it in like that, what you type is shown like this: <h1>Languages of the web</h1> <h3>U+2713 HTML</h3> <h3>U+2713 CSS</h3> <h3>U+2713 JavaScript</h3> <h3>U+2713 PHP</h3>
๐ŸŒ
W3Schools
w3schools.com โ€บ html โ€บ html_symbols.asp
HTML Symbols
To add such symbols to an HTML page, you can use the entity name or the entity number (a decimal or a hexadecimal reference) for the symbol: ... If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail: sales@w3schools.com ยท If you want to report an error, or if you want to make a suggestion, send us an e-mail: help@w3schools.com ยท HTML Tutorial CSS Tutorial JavaScript Tutorial How To Tutorial SQL Tutorial Python Tutorial W3.CSS Tutorial Bootstrap Tutorial PHP Tutorial Java Tutorial C++ Tutorial jQuery Tutorial
๐ŸŒ
Graphemica
graphemica.com โ€บ โœ“
โœ“ โ€ข check mark (U+2713) @ Graphemica
Though part of the "Dingbats" Unicode block, this character represents a concept with ancient roots, valued for its simplicity and cross-cultural recognition. Unicode offers variations like the bolder โœ”๏ธ (Heavy Check Mark) and the emoji-style โœ… (Heavy Check Mark), providing a rich set of options for different visual and contextual needs. ... C, JavaScript, JSON, Java ยท CSS ยท HTML (Decimal) ยท
๐ŸŒ
HTML Symbols
htmlsymbols.xyz โ€บ unicode โ€บ U+2713
โœ“ - Check mark (U+2713) - HTML Symbols
Detailed information about the Unicode character 'Check mark' with code point U+2713 that can be used as a symbol or icon on your site.
๐ŸŒ
Cyber Definitions
cyberdefinitions.com โ€บ symbols โ€บ special-symbols โ€บ Check-Mark.html
'Check-Mark' | Symbol and Codes
On the assumption that you already have your canvas and the context set up, use the Hex code in the format 0x2713 to place the โœ“ symbol on your canvas. For example: The Unicode for โœ“ is U+2713. The important part is the hexadecimal number after the U+, which is used in various formats. For example, in Microsoft Office applications (e.g. Word, PowerPoint), do the following: In JavaScript, the syntax is \uXXXX.
Find elsewhere
๐ŸŒ
Graphemica
graphemica.com โ€บ โœ”
โœ” โ€ข heavy check mark (U+2714) @ Graphemica
It's related to other confirmation symbols like the emoji-style โœ… (White Heavy Check Mark) or โ˜‘ (Ballot Box with Check), each serving slightly different contextual needs for indicating confirmation. ... C, JavaScript, JSON, Java ยท CSS ยท HTML (Decimal) ยท
Top answer
1 of 4
37

Check it with typeof:

typeof x === 'symbol'
2 of 4
7

Updated 2022: Go with the accepted answer! If you're working in an environment so outdated that Symbol needs to be polyfilled, then you'll know that already. You'll be excruciatingly aware of it. You'll be haunted by it. Then, sure, use my answer. Otherwise don't bother. typeof x === 'symbol' is almost definitely all you need these days.


In ES 2015 and up, typeof x === 'symbol' is all that's needed. But it won't work if you're transpiling your code to ES 5.1 or earlier, even if you're using a polyfill for the Symbol builtin.

Every polyfill I've seen, including the babel-polyfill, implements Symbol as an object (i.e. typeof x === 'object') using a constructor function called Symbol. So in those cases you can check that Object.prototype.toString.call (x) === '[object Symbol]'*.

Putting it all together, then, we get:

function isSymbol (x) {
    return typeof x === 'symbol'
        || typeof x === 'object' && Object.prototype.toString.call (x) === '[object Symbol]';
}

*Note that I'm not using instanceof in the transpiled scenario. The problem with instanceof is that it only returns true for objects that were created within the same global context as the assertion being made. So if, say, a web worker passes a symbol back to your page, or symbols are passed between iframes, then x instanceof Symbol will return false! This has always been true of all object types, including the builtins. instanceof often works just fine, but if there's any chance of your code being in a "multi-frame" scenario as I've described, use with caution!

๐ŸŒ
Toptal
toptal.com โ€บ designers โ€บ htmlarrows โ€บ symbols
HTML Symbols, Entities and Codes โ€” Toptal Designers
Easily find HTML symbols, entities, characters and codes with ASCII, HEX, CSS and Unicode values; including copyright sign, trademark sign and at symbol.
๐ŸŒ
HTML Symbols
htmlsymbols.xyz โ€บ unicode โ€บ U+2714
โœ” - Heavy check mark (U+2714) - HTML Symbols
Detailed information about the Unicode character 'Heavy check mark' with code point U+2714 that can be used as a symbol or icon on your site.
๐ŸŒ
MDN Web Docs
developer.mozilla.org โ€บ en-US โ€บ docs โ€บ Web โ€บ JavaScript โ€บ Reference โ€บ Global_Objects โ€บ Symbol โ€บ search
Symbol.search - JavaScript - MDN Web Docs
July 10, 2025 - class CaseInsensitiveSearch { constructor(value) { this.value = value.toLowerCase(); } [Symbol.search](string) { return string.toLowerCase().indexOf(this.value); } } console.log("foobar".search(new CaseInsensitiveSearch("BaR"))); // 3
๐ŸŒ
W3Schools
w3schools.com โ€บ charsets โ€บ ref_utf_symbols.asp
HTML Unicode Miscellaneous Symbols
Well organized and easy to understand Web building tutorials with lots of examples of how to use HTML, CSS, JavaScript, SQL, Python, PHP, Bootstrap, Java, XML and more.
๐ŸŒ
Htmlsymbols
htmlsymbols.com โ€บ check-mark-symbols.html
Check Mark Symbols - HTMLsymbols.com
On this page, you'll find a list of common check mark symbols and their corresponding HTML entities.
๐ŸŒ
MDN Web Docs
developer.mozilla.org โ€บ en-US โ€บ docs โ€บ Web โ€บ JavaScript โ€บ Reference โ€บ Global_Objects โ€บ Symbol
Symbol - JavaScript | MDN - Mozilla
Symbol is a built-in object whose constructor returns a symbol primitive โ€” also called a Symbol value or just a Symbol โ€” that's guaranteed to be unique. Symbols are often used to add unique property keys to an object that won't collide with keys any other code might add to the object, and ...