Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

340
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!