Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

341
Visualizações
¿Qué significa @@ ("at at") en ES6 JavaScript?

He notado que @@ se usa en algunas páginas sobre las nuevas características de ES6, pero no sé qué significa exactamente (si es en realidad sintaxis o simplemente algún tipo de convención de documentación). Y es difícil de googlear. ¿Alguien puede explicarlo?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

@@ describe lo que se denomina un símbolo conocido. (Tenga en cuenta que en realidad no es una sintaxis válida en JS). De acuerdo con la especificación ES6/ES2015 1 :

Los símbolos conocidos son valores de símbolo incorporados a los que los algoritmos de esta especificación hacen referencia explícita. Por lo general, se utilizan como claves de propiedades cuyos valores sirven como puntos de extensión de un algoritmo de especificación. A menos que se especifique lo contrario, los valores de símbolos bien conocidos son compartidos por todos los Code Realms (8.2).

Code Realms se refiere a diferentes instancias de un entorno de JavaScript. Por ejemplo, el Code Realm del documento raíz sería diferente al de JavaScript que se ejecuta en un <iframe> .

Un ejemplo de dónde importa de qué reino de código proviene un objeto es cuando se intenta usar instanceof para determinar si un objeto es una matriz (pista: no funcionará si es de otro marco). Para evitar que este tipo de problemas aparezcan con símbolos, se comparten para que las referencias a (digamos) @@toString funcionen sin importar de dónde provenga el objeto.

Algunos de estos se exponen directamente a través del constructor de Symbol , por ejemplo, @@toPrimitive se expone como Symbol.toPrimitive . Eso se puede usar para anular el valor producido al intentar convertir un objeto en un valor primitivo, por ejemplo:

 let a = { [Symbol.toPrimitive]: () => 1 }; console.log(+a); // 1 console.log(a.valueOf()); // (the same object) console.log(a.toString()); // "[object Object]"

En general, los símbolos se utilizan para proporcionar propiedades únicas en un objeto que no puede coincidir con un nombre de propiedad aleatorio, por ejemplo:

 let a = Symbol(); let foo = { [a]: 1 }; foo[a]; // 1

No hay forma de acceder al valor, excepto obteniendo el símbolo de algún lugar (aunque puede obtener todos los símbolos de un objeto llamando a Object.getOwnPropertySymbols , por lo que no se pueden usar para implementar propiedades o métodos privados).

1: Consulte este tema de debate para obtener información sobre los diferentes nombres.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda