1. Alcance de la variable Javascript
En JavaScript, las variables se dividen principalmente en dos tipos: variables locales y variables globales, y los alcances correspondientes también son alcance local y alcance global.
1 Variables locales y alcance
Las variables locales generalmente se declaran y utilizan dentro del cuerpo de la función:
función func(){ var i=12;//Variables locales...}El alcance de una variable local se utiliza dentro del cuerpo de la función en la que se declara la variable.
El ciclo de declaración de variables locales se inicializa cuando se llama y ejecuta la función, y se destruye una vez completada la llamada a la función.
2. Variables globales y alcance
Las variables globales generalmente se declaran fuera del cuerpo de la función:
var i=12;//función variable global func(){......}También hay una variable que se usa directamente sin declaración y que por defecto es una variable global:
function func(){ i=12;// No declarado (declarado usando la palabra clave var), por defecto es la variable global}Las variables globales se pueden utilizar en todos los scripts y métodos de la página actual, y su alcance está en el script de la página actual.
El ciclo de declaración de variables globales se crea cuando la variable se inicializa y se destruye cuando se cierra la página actual.
2. tipo de palabra clave
La palabra clave typeof se utiliza principalmente para detectar el tipo de datos de las variables. Los principales tipos de datos en JavaScript son cadena, número, booleano, objeto, etc.
console.log(typeof 'str');//stringconsole.log(typeof 23);//numberconsole.log(typeof false);//booleanconsole.log(typeof [1,3,12]);//objectconsole. log(tipo de {nombre:'jack',edad:12});//objectconsole.log(tipo de nueva fecha());//objetoNota: Las matrices y los objetos json en js son todos del tipo de datos de objeto.
3. nulo e indefinido
Nulo e indefinido suelen aparecer en JavaScript, lo que indica que el valor de una variable está vacío o que una variable no está definida. Al expresar valores, se pueden expresar como valores nulos, pero siguen siendo diferentes en términos de tipos de datos.
console.log(tipo de nulo);//objectvar persion = null;console.log(persion);//nullconsole.log(tipo de indefinido);//undefinidovar persion2;console.log(persion2);//undefinido
El tipo de datos de nulo es objeto y el tipo de datos de indefinido es indefinido.
Cuando se declara una variable, el valor es nulo y el valor de la variable es nulo; cuando una variable solo se declara, sin asignación, el valor no está definido.
Veamos otro conjunto de comparaciones:
console.log(null==undefinido);//los valores verdaderos son iguales console.log(null===undefinido);//los tipos falsos no son iguales
Se puede ver que cuando nulo e indefinido representan valores, ambos representan vacíos; el tipo de datos de nulo es objeto y el tipo de datos de indefinido es indefinido. Los valores que se declaran sin inicialización no están definidos.
El siguiente es un suplemento.
Situación uno
<script> var i; //Variables globales//El nombre del método es nomenclatura camel //Las variables en el método son variables locales function sayHello(){ var x=100; alert(x } sayHello(); //Salida 100 alert(x); //Se informa un error porque x es una variable local y no se puede acceder a ella</script>Situación dos
<script>función sayHello(){ var x=100; if(x==100){ var y=x+1; alert(y); //Salida 101 } alert(y); Dentro del método, no hay alcance a nivel de bloque, ¡lo cual no es posible en C#! ! ! for(var i=0;i<2;i++){ alert(i) } // La variable definida en el bucle for tiene un alcance a nivel de bloque alert(i); } decirHola();</script>Nota: No es necesario declarar las variables con var antes de su uso. Dichas variables se considerarán "variables globales", pero rara vez se utilizan de esta manera.
Acerca de indefinido y nulo
En las siguientes situaciones, el valor de la variable no está definido.
1. Si una variable está definida pero no se le asigna un valor, el valor de la variable no está definido.
2. El método llamado no tiene valor de retorno y el valor devuelto no está definido.
3. Si el valor del atributo del objeto no existe, el valor de retorno no está definido, como por ejemplo: document.ddd
Ejemplo 1:
var xx;var yy=null;if(xx==yy){ alerta('igual');}else{ alerta('no igual');}Los resultados de salida son iguales porque al realizar el juicio if, el navegador juzgará los valores de xx e yy. Dado que ambos no tienen valores específicos, se consideran falsos.
Si el juicio if se reemplaza con ===[todo el signo igual], ¡la salida no será igual! ¡Porque === significa que los tipos de datos y valores de xx e yy deben ser los mismos!
Ejemplo2:
var xx=10var yy='10';if(xx==yy){ alerta('igual');}else{ alerta('no igual');}La salida es igual. Si se cambia a ===, la salida no es igual.
Ejemplo3:
var n='10';switch(n){ caso 10: alerta('número'); caso '10': alerta('cadena');Cadena de salida
El juicio en el cambio debe considerar el tipo
Resumen: El juicio en if es juzgar el valor, independientemente del tipo.