Hace algún tiempo, respondí una diferencia entre usar la palabra clave var al definir variables. Vamos a revisarlo.
1. Las variables definidas por VAR dentro del alcance de la función son variables locales, y las definidas sin var se convierten en variables globales.
Use VAR para definir:
var a = 'hello world'; function bb () {var a = 'hello bill'; console.log (a); } bb () // 'hola bill'console.log (a); //'Hola Mundo'No usa la definición VAR:
var a = 'hello world'; function bb () {a = 'hello bill'; console.log (a); } bb () // 'hola bill'console.log (a); // 'Hola Bill'2. Bajo el alcance global, las variables definidas con VAR no se pueden eliminar, se pueden eliminar variables definidas sin var. Esto significa que las variables globales implícitas no son estrictamente variables reales, pero los atributos de los objetos globales, porque los atributos se pueden eliminar a través de Eliminar, y las variables no pueden ser.
3. Definición de las variables usando VAR también mejorará las declaraciones variables, es decir.
Use VAR para definir:
función hh () {console.log (a); var a = 'Hello World';} Hh () // UndefinedNo usa la definición VAR:
función hh () {console.log (a); a = 'hola mundo';} hh () // 'a no está definido'Esta es la declaración de variables definidas usando VAR por adelantado.
4. En el modo 'Use estricto' de ES5, si la variable no se define usando VAR, se informará un error.