Baseline Widely available
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.
const symbol1 = Symbol();
const symbol2 = Symbol(42);
const symbol3 = Symbol("foo");
console.log(typeof symbol1);
// Expected output: "symbol"
console.log(symbol2 === 42);
// Expected output: false
console.log(symbol3.toString());
// Expected output: "Symbol(foo)"
console.log(Symbol("foo") === Symbol("foo"));
// Expected output: false
Sintaxis
Symbol();
Symbol(description);
Parámetros
description
Opcional
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:
let sym1 = Symbol();
let sym2 = Symbol("foo");
let sym3 = Symbol("foo");
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:
Symbol("foo") === Symbol("foo"); // false
new Symbol()
La siguiente sintaxis con el operador new
lanzará un TypeError
:
let sym = new Symbol(); // 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()
:
let sym = Symbol("foo");
let symObj = Object(sym);
typeof sym; // => "symbol"
typeof symObj; // => "object"
Especificaciones Compatibilidad con navegadores Véase también
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4