2010-06-20 10 views
5

Duplicar posibles:.
Difference between using var and not using var in JavaScriptÁmbito de uso de "var' en los programas de javascript

Hola,

estoy un auto aprendido desarrollador siempre, escribo javascript sin el var para variables. Pero algunos javascripts usan var para variables.

Ambos funcionaron bien para mí. Estoy algo confundido por esto.

¿Está escribiendo scripts con var de forma estándar o solo se usan dentro de las clases?

+0

posible duplicado de [Diferencia entre usar var y no usar var en JavaScript] (http://stackoverflow.com/questions/1470488/difference-between-using-var-and-not-using-var-in-javascript), [Javascript: ¿está usando 'var' para declarar las variables como opcionales?] (Http://stackoverflow.com/questions/2485423/javascript-is-using-var-to-declare-variables-optional), [alcance variable de JavaScript pregunta: var, o no var] (http://stackoverflow.com/questions/1956296/javascript-variable-scope-question-to-var-or-not-to-var), encontrado a través de la búsqueda SO ' javascript var';) –

+0

¡Gracias Felix Kling! ¡los moderadores pueden cerrar esta publicación si es necesario! –

Respuesta

11

var limita el alcance de una variable a la función en la que está declarada, si no usa var crea un global.

Globals tienden a dar lugar a un código que es difícil de mantener y sufre de condiciones de carrera.

Siempre use var a menos que tenga una muy buena razón para no hacerlo.

+0

No necesariamente diría que las condiciones de carrera son el problema, ya que la ejecución de Javascript (Trabajadores web a un lado) es de un solo hilo. OMI, una mejor declaración del problema es la contaminación del espacio de nombres y el pisoteo del estado (sobrescribir accidentalmente los datos que necesita). –

1

Si no usa var, la variable será global, no limitada en el alcance en el que se encuentra (un problema para decir otra variable en el espacio global con el mismo nombre, que acaba de escribir en exceso, probablemente involuntariamente).

Versión corta: utilice siempre var para estar seguro.