1. Portée des variables Javascript
En JavaScript, les variables sont principalement divisées en deux types : les variables locales et les variables globales, et les portées correspondantes sont également la portée locale et la portée globale.
1 Variables locales et portée
Les variables locales sont généralement déclarées et utilisées dans le corps de la fonction :
function func(){ var i=12;//Variables locales...}
La portée d'une variable locale est utilisée dans le corps de la fonction dans laquelle la variable est déclarée.
Le cycle de déclaration des variables locales est initialisé lorsque la fonction est appelée et exécutée, et est détruit une fois l'appel de fonction terminé.
2. Variables globales et portée
Les variables globales sont généralement déclarées en dehors du corps de la fonction :
var i=12;//fonction variable globale func(){......}
Il existe également une variable qui est utilisée directement sans déclaration et qui est par défaut une variable globale :
function func(){ i=12;//Non déclaré (déclaré à l'aide du mot-clé var), par défaut la variable globale}
Les variables globales peuvent être utilisées dans tous les scripts et méthodes de la page actuelle, et leur portée se trouve dans le script de la page actuelle.
Le cycle de déclaration des variables globales est créé lors de l'initialisation de la variable et détruit lors de la fermeture de la page en cours.
2. type de mot-clé
Le mot-clé typeof est principalement utilisé pour détecter le type de données des variables. Les principaux types de données en JavaScript sont chaîne, nombre, booléen, objet, etc.
console.log(typeof 'str');//stringconsole.log(typeof 23);//numberconsole.log(typeof false);//booleanconsole.log(typeof [1,3,12]);//objectconsole. log(typeof {name:'jack',age:12});//objectconsole.log(typeof new Date());//object
Remarque : Les tableaux et les objets json dans js sont tous de type de données objet.
3. nul et indéfini
Null et indéfini apparaissent souvent en JavaScript, indiquant que la valeur d'une variable est vide ou qu'une variable n'est pas définie. Lors de l'expression de valeurs, elles peuvent être exprimées sous forme de valeurs nulles, mais elles restent différentes en termes de types de données.
console.log (type de null); // objectvar persion = null;
Le type de données null est objet et le type de données indéfini est indéfini.
Lorsqu'une variable est déclarée, la valeur est nulle et la valeur de la variable est nulle ; lorsqu'une variable est uniquement déclarée, sans affectation, la valeur n'est pas définie.
Examinons une autre série de comparaisons :
console.log(null==undefined);//les vraies valeurs sont égales console.log(null===undefined);//les faux types ne sont pas égaux
On peut voir que lorsque null et indéfini représentent des valeurs, ils représentent tous deux vides ; le type de données null est un objet et le type de données indéfini est indéfini. Les valeurs déclarées sans initialisation ne sont pas définies.
Ce qui suit est un supplément
Première situation
<script> var i; //Variables globales//Le nom de la méthode est la nomenclature de chameau //Les variables de la méthode sont des variables locales function sayHello(){ var x=100; alert(x } sayHello(); / /Sortie 100 alert(x); //Une erreur est signalée car x est une variable locale et n'est pas accessible</script>
Deuxième situation
<script>function sayHello(){ var x=100; if(x==100){ var y=x+1; alert(y); //Sortie 101 } alert(y); À l’intérieur de la méthode, il n’y a pas de portée au niveau du bloc, ce qui n’est pas possible en C# ! ! ! for(var i=0;i<2;i++){ alert(i) } //La variable définie dans la boucle for a une portée au niveau du bloc alert(i); //Parce que i est une variable locale, 2 est généré } ditesBonjour();</script>
Remarque : les variables n'ont pas besoin d'être déclarées avec var avant utilisation. Ces variables seront considérées comme des « variables globales », mais elles sont rarement utilisées de cette manière.
À propos de non défini et nul
Dans les situations suivantes, la valeur de la variable n'est pas définie.
1. Si une variable est définie mais qu’aucune valeur ne lui est attribuée, la valeur de la variable n’est pas définie.
2. La méthode appelée n'a pas de valeur de retour et la valeur renvoyée n'est pas définie.
3. Si la valeur d'attribut de l'objet n'existe pas, la valeur de retour n'est pas définie, telle que : document.ddd
Exemple 1 :
var xx;var yy=null;if(xx==yy){ alert('equal');}else{ alert('not égal');}
Les résultats de sortie sont égaux car lors de l'exécution du jugement if, le navigateur jugera les valeurs de xx et yy. Puisque les deux n'ont pas de valeurs spécifiques, elles sont considérées comme fausses.
Si le jugement if est remplacé par ===[tout signe égal], le résultat ne sera pas égal ! Parce que === signifie que les types de données et les valeurs de xx et yy doivent être les mêmes !
Exemple 2 :
var xx=10var yy='10';if(xx==yy){ alert('equal');}else{ alert('not égal');}
La sortie est égale. Si elle est modifiée en ===, la sortie n'est pas égale.
Exemple 3 :
var n='10';switch(n){ case 10: alert('number'); break case '10': alert('string');}
Chaîne de sortie
Le jugement en cas de changement doit tenir compte du type
Résumé : Le jugement dans if consiste à juger la valeur, quel que soit le type.