No entiendo el ambito de las variables en javascript

Iniciado por Aikanáro Anário, 8 Junio 2012, 19:49 PM

0 Miembros y 1 Visitante están viendo este tema.

Aikanáro Anário

Código (javascript) [Seleccionar]

<html>
    <head>
        <script type="text/javascript">
            function miNombre()
            {
                nombre = "soy yo";
               
            }

            alert(nombre);
        </script>
    </head>
<body>
    <button onclick="miNombre();">Boton</button>
</body>
</html>


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. "

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.
Lo que faltaba en internet: http://binar10s.blogspot.com/

#!drvy

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

Aikanáro Anário

Bueno, entonces en internet hay mucha información equivocada al respecto.
Lo que faltaba en internet: http://binar10s.blogspot.com/