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

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

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 Report

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 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!