1

Tengo una duda, siempre he codificado en js pero siempre no usaba el var para anteponer en la declaración de una variable pero vi que algunos dicen que se debe poner var dentro de una función, otros dicen que se pone cuando esta fuera.

Gracias por sus aportes.

Shiroyasha
  • 11
  • 1
  • 2
  • Quizás sea por el ámbito de la variable si no usas var para declarar una variable esta sera global. Lo cual es una mala practica. –  Apr 04 '17 at 15:56

4 Answers4

2

Depende de la version de javascript.

Si usas JS5 (lo estandar en navegadores) var es la keyword utilizada para declarar una variable. Ej:

var miVariable, otraVariableInicializada=1, 
    otraVariableUndefined;

Ahora si usas Javascript 6 (ECMAScript 2015) o superior (NodeJS), la keyword var tiene menos usos.

En general se pefiere el uso de const (para constantes y funciones) o let (para variables) salvo que se necesite crear un closure, en cuyo caso se debe utilizar var.

const modulo = require('modulo');

const miFunc = () => {
    var enClousure = 1234;

    return () => {
       let valorLocal = modulo.getAlgo();
       return enClousure + valorLocal;
    }; 

};
rnrneverdies
  • 16,491
  • 3
  • 49
  • 79
1

Aquí te dejo un ejemplo que me dio mi profesor en su día para ver si lo entiendes.

function f1(a,b){
    var c=c+a; // La variable c es LOCAL
    d=d+b; // La variable d es GLOBAL
    document.write("En f1()<br/>");
    document.write("c="+c+"<br/>");
    document.write("d="+d+"<br/>");
}

function f2(){
    document.write("En f2()<br/>");
    document.write("c="+c+"<br/>");
    document.write("d="+d+"<br/>");    
}


// ---------------------------------------

var c = 10; // Variable GLOBAL. Es un script
d = 20; // Variable GLOBAL

f1(1,2);
f2();
Mariano
  • 23,777
  • 20
  • 70
  • 102
Geraniego
  • 191
  • 1
  • 15
  • Buen ejemplo +1... Aunque una pequeña descripción de lo que sucede creo que ayudaría mucho a un ojo menos experimentado – Mariano Apr 04 '17 at 16:17
0

Cuando tu declaras una variable sin poner el var delante, estas declarando esa variablede manera global a todo el documento *.js en cambio si pones var variable la estas declarando local al metodo que vas a utilizar.

Geraniego
  • 191
  • 1
  • 15
  • Esta respuesta es érronea, las variables definidas mediante el tipo `var` también son globales y pueden ser accedidas mediante el objeto `window` – Jorius Apr 04 '17 at 15:47
0

Si colocas var la puedes usar dentro de pero no fuera de donde se declaro; Ejemplo como un nombre de variable se comporta dependiendo donde fue declarada; incluso la declarada sin "var" dentro de la función queda global a la página.