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

161
Vistas
las declaraciones de función no pueden estar dentro de una declaración if de acuerdo con ecmascript

¿Cómo es posible declarar una función dentro de un IfStatement ? porque de acuerdo con la especificación de ecmascript, solo puede haber una declaración allí.

if (Expresión) Sentencia

if ( Expresión ) Sentencia else Sentencia

y FunctionDeclaration no es una Declaración pero es una Declaración

así que tal vez me he perdido algo o tal vez los navegadores no pueden implementar tal cosa hoy en día porque puede arruinar los sitios web que usan declaraciones de función dentro de una declaración if.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

No es posible poner una declaración de función en una declaración if . Probar

 if (true) function example() {}

en modo estricto, obtendrá un SyntaxError . Para declarar una función dentro de una rama condicional, debe colocarla dentro de un bloque , que es una declaración (a través de BlockStatement ) y puede contener declaraciones (en una lista de declaraciones ).

Tal vez los navegadores no puedan implementar tal cosa hoy en día porque pueden arruinar los sitios web que usan declaraciones de función dentro de una declaración if.

Sí, de hecho. Para la compatibilidad web heredada, las declaraciones de función en declaraciones if están permitidas en modo descuidado . No escriba código como ese, pero el navegador puede tratarlo como válido.

about 4 years ago · Juan Pablo Isaza Denunciar

0

De la especificación:

En el nivel superior de una función o secuencia de comandos, las declaraciones de funciones internas se tratan como declaraciones de var.

La cadena va así.

Declaración => Declaración de bloque => Lista de declaraciones => Elemento de lista de declaraciones => Declaración => Declaración Var

Todo está bien aquí, elemento de la lista de declaraciones

https://tc39.es/ecma262/#prod-StatementListItem

Antes de ECMAScript 2015, la especificación de ECMAScript no definía la ocurrencia de una declaración de función como un elemento de la lista de declaraciones de una declaración de bloque. Sin embargo, el soporte para esa forma de FunctionDeclaration era una extensión permitida y la mayoría de las implementaciones de ECMAScript alojadas en el navegador lo permitían.

about 4 years ago · Juan Pablo Isaza 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