Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

290
Vistas
javaScript: ¿Puede aparecer una coma después del último conjunto de valores en una matriz?

Me pregunto si una coma detrás de una matriz en javascript es válida.

 var settings = { 'foo' : oof, 'bar' : rab, };

contra

 var settings = { 'foo' : oof, 'bar' : rab };

Tenga en cuenta que el segundo ejemplo no tiene una coma después de la última clave/valor.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

La mayoría de los navegadores e implementaciones permiten una coma final, el gran PERO es "Internet Explorer".

Una coma final en la mayoría de las versiones de Internet Explorer causa GRANDES problemas. Lanzará errores extraños, locos , extraños e irrazonables... ¡no tienes idea de dónde estás! Esto es terrible , caerás en profundas y graves depresiones . La enfermedad también tiene un nombre, "coma malvada de la perdición", como se le llamó una vez.

Conclusión: ¡NUNCA… jamás! use una coma final en Javascript.

over 4 years ago · Santiago Trujillo Denunciar

0

Históricamente hablando, ES3 NO permitía una coma final al definir un objeto literal. Esto fue algo que IE hizo bien, pero la mayoría de los otros proveedores de arqueros fueron en contra de las especificaciones y lo permitieron de todos modos. Entonces, técnicamente, fue un error en los otros navegadores que lo admitían. En ES3, un ObjectLiteral se definió como,

ObjetoLiteral
    { }
    { NombreDePropiedadYListaDeValores }

Más tarde, ES5 resolvió este problema yendo con la mayoría y legitimando la coma final colocándola en la especificación. Ahora un ObjectLiteral se define como,

ObjetoLiteral
    { }
    { NombreDePropiedadYListaDeValores } 
    { NombreDePropiedadYListaDeValores , }

Fíjate en la coma final al final.

Aunque la coma final se define en un objeto literal, aún no se permite en JSON según ES5. Entonces, mientras que el siguiente objeto literal es válido,

 { foo: "bar", }

el siguiente JSON no lo es,

'{ "foo": "barra", }'

La gramática para un JSONObject es,

Objeto JSON
    { }
    { Lista de miembros JSON }

Lista de miembros JSON
    JSONMiembro  
    JSONMiembroLista, JSONMiembro

JSONMiembro
    Cadena JSON: valor JSON 

En resumen, si no desea preocuparse por las especificaciones o las peculiaridades del navegador, NO agregue una coma al final.

over 4 years ago · Santiago Trujillo Denunciar

0

Con respecto a los objetos literales al menos (el título de la pregunta menciona una matriz, pero el ejemplo es un objeto literal) depende de dónde se esté ejecutando su js. Las comas finales en los objetos literales son válidas en ES5. Aunque las comas finales pueden causar problemas en la web (en IE), la mayoría de los minificadores las eliminarán de todos modos.

http://www.2ality.com/2011/06/objeto-literal-coma.html

http://dontkry.com/posts/code/trailing-commas.html

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda