Cómo distinguir si una variable definida en JavaScript tiene una var o no con un ejemplo detallado
Resumamos la diferencia entre usar la palabra clave var o no al definir variables.
Dentro de una función, las variables declaradas con var y sin var son diferentes. Las declaradas con var son variables locales y las que no tienen var se declaran variables globales, por lo que puedes usar esto para exponer elementos de la interfaz al mundo exterior.
Es legal e inofensivo utilizar declaraciones var para repetir declaraciones. Si la declaración se repite con una tarea, no es diferente de una declaración de asignación normal. Si intenta leer una variable no declarada, JS informará un error.
Dentro del alcance de la función JavaScript, las variables declaradas o funciones internas son visibles en el cuerpo de la función. Es decir, la función puede estar disponible antes de que se defina. Hay dos formas de definir una función, una es una expresión de definición de función y la otra es una declaración de función.
Las declaraciones de función se "avanzan" a la parte superior del script externo o del alcance de la función externa, por lo que una función declarada de esta manera puede ser llamada mediante el código que aparece antes de definirse. En las expresiones de definición de funciones, la declaración de variables es avanzada, pero la asignación de variables no es avanzada. Por lo tanto, las funciones definidas en las expresiones no se pueden llamar antes de que se defina la función.
1. En el alcance de la función, las variables definidas con var son variables locales y las variables definidas sin var se convierten en variables globales.
Usar definición var:
No usar definición var:
2. En el ámbito global, las variables definidas usando var no se pueden eliminar y no hay ninguna. Definición de var. Las variables se pueden eliminar. Esto significa que, estrictamente hablando, las variables globales implícitas no son variables reales, sino atributos del objeto global, porque los atributos se pueden eliminar mediante eliminación, pero las variables no.
3. Usar var para definir una variable también promoverá la declaración de variable, es decir,
Usar definición de var:
No usar definición de var:
Esta es la declaración de variables definidas usando var con anticipación.
4. En el modo 'uso estricto' de ES5, si la variable no está definida usando var, se informará un error.