Soy nuevo en Javascript. Estoy aprendiendo el concepto de elevación en Javascript.
Basado en los tutoriales Javacsript en el sitio web de Mozilla , me encontré con esta palabra hoisting
. De acuerdo con esos tutoriales, las variables en JavaScript es que puede hacer referencia a una variable declarada más tarde, sin obtener una excepción . Pero mi pregunta es en qué circunstancias es adecuado usar la elevación en un Javascript del lado del cliente o por qué deberíamos usar la elevación en Javascript. Cuales son sus ventajas.
javascript
Rudra
fuente
fuente
Respuestas:
Nunca he escuchado el término "elevación" utilizado. Si se refiere a este uso de elevación por parte de Ben Cherry: http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html , entonces, por lo que puedo deducir, simplemente está haciendo eco de Douglas Crockford de Javascript: The Buenas partes , y decir que nunca debes usar el izado . Su afirmación al final es que todas las variables deben declararse en la parte superior de su función (como sugieren Crockford y JSLint).
O, en palabras del Sr. ChristopherBrown, no es una característica para usar , por decir, sino simplemente una peculiaridad relacionada con la forma en que el navegador interpreta Javascript.
En resumen: nunca y en ninguna parte .
fuente
El levantamiento describe una característica de cómo el navegador interpreta Javascript, y no es tanto una característica para ser utilizada.
Al interpretar Javascript, los navegadores abarcan variables de nivel de función al comienzo de la función. Ejemplo:
En el código publicado, ambas variables "dos" y "resultado" existen al comienzo del alcance de la función (obviamente, como se declaran allí). Sin embargo, debido a que los navegadores están "alzando" las variables, lo siguiente se convierte en código JavaScript legal .
El efecto neto aquí es que tiene variables en uso antes de declararlas, y eso puede causar confusión, especialmente con las variables de alcance global. Ejemplo:
Para evitar confusiones, declare sus variables en la parte superior de una función.
fuente
¿Por qué?
JavaScript no tiene Block Scope , eso debería explicar por qué las cosas deberían elevarse a la cima.
¿Es útil?
Si prefieres esto:
En lugar de esto:
Entonces es útil. ¡Incluso si no lo notas!
Aclaracion
El primer ejemplo se traducirá en algo como esto:
fuente