Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Aikanáro Anário en 8 Junio 2012, 19:49 pm



Título: No entiendo el ambito de las variables en javascript
Publicado por: Aikanáro Anário en 8 Junio 2012, 19:49 pm
Código
  1. <html>
  2.    <head>
  3.        <script type="text/javascript">
  4.            function miNombre()
  5.            {
  6.                nombre = "soy yo";
  7.  
  8.            }
  9.  
  10.            alert(nombre);
  11.        </script>
  12.    </head>
  13. <body>
  14.    <button onclick="miNombre();">Boton</button>
  15. </body>
  16. </html>
  17.  

Se supone que si declaro una variable sin "var" es global para toda la pagina, incluso si esta dentro de una función.

Eso es lo que he leído en internet:
"Como hemos dicho, en javascript tenemos libertad para declarar o no las variables con la palabra var, pero los efectos que conseguiremos en cada caso serán distintos. En concreto, cuando utilizamos var estamos haciendo que la varible que estamos declarando sea local al ámbito donde se declara. Por otro lado, si no utilizamos la palabra var para declarar una variable, ésta será global a toda la página, sea cual sea el ámbito en el que haya sido declarada.  (http://www.desarrolloweb.com/articulos/517.php)"

Pero el código anterior no funciona y dice que la variable "nombre" no está definida. Entonces no hay ninguna diferencia entre declarar una variable con "var" o no.


Título: Re: No entiendo el ambito de las variables en javascript
Publicado por: #!drvy en 8 Junio 2012, 20:24 pm
Cuando declaras una variable en una función esta se convierte en local y solo podras acceder a ella dentro de la propia función pero no fuera.

Cuando la declaras FUERA es cuando la variable se vuelve GLOBAL y puedes acceder a ella tanto directamente como dentro de una función.


Eso de usar var y no es una chorrada... si intentas ponerle un valor a una variable no declarada (nombre="soy yo") esta se declara como global pero siempre y cuando no este dentro de una función.


Saludos


Título: Re: No entiendo el ambito de las variables en javascript
Publicado por: Aikanáro Anário en 8 Junio 2012, 20:32 pm
Bueno, entonces en internet hay mucha información equivocada al respecto.