Get to know MDN better
Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since septiembre de 2015.
El constructor Symbol() devuelve un valor de tipo symbol, pero está incompleto como constructor porque no soporta la sintaxis "new Symbol()" y no está pensado para ser heredado. Puede utilizarse como valor de una cláusula extends de una definición de class, pero una llamada a super provocará una excepción.
Una cadena. Una descripción del símbolo que puede utilizarse para la depuración pero no para acceder al símbolo en sí.
Para crear un nuevo símbolo primitivo, se escribe Symbol() con una cadena opcional como descripción:
El código anterior crea tres nuevos símbolos. Tenga en cuenta que Symbol("foo") no coacciona la cadena "foo" en un símbolo. Cada vez crea un nuevo símbolo:
La siguiente sintaxis con el operador new lanzará un TypeError:
Esto evita que los autores creen un objeto envolvente explícito Symbol en lugar de un nuevo valor de símbolo y podría ser sorprendente ya que la creación de objetos envolventes explícitos alrededor de tipos de datos primitivos es generalmente posible (por ejemplo, new Boolean, new String y new Number).
Si realmente quieres crear un objeto envolvente Symbol, puedes utilizar la función Object():
| ECMAScript® 2027 Language Specification # sec-symbol-constructor |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 11 feb 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.