Maison >interface Web >js tutoriel >Analyse des exemples de déclaration de variables javascript_compétences javascript

Analyse des exemples de déclaration de variables javascript_compétences javascript

WBOY
WBOYoriginal
2016-05-16 16:02:221374parcourir

L'exemple de cet article décrit la méthode de déclaration de variable javascript. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Une variable doit être déclarée avant de l'utiliser dans js. Les variables sont déclarées à l'aide du mot-clé var.

Si une valeur initiale n'est pas spécifiée pour une variable dans l'instruction de déclaration var, la valeur de la variable n'est pas définie.
Il n'est pas nécessaire de spécifier le type de variable lorsque la variable JS peut être de n'importe quel type de données.

Il est légal et inoffensif de déclarer des variables à plusieurs reprises en utilisant l'instruction var. Si la déclaration répétée a un initialiseur, elle n'est pas différente d'une simple instruction d'affectation.

Si vous essayez de lire une variable non déclarée, js signalera une erreur. En mode strict ECMAScript5, l'attribution d'une valeur à une variable non déclarée signalera également une erreur ; cependant, historiquement, en mode non strict, si vous attribuez une valeur à une variable non déclarée, js créera en fait une propriété avec le même nom pour la variable non déclarée. objet global, et il semble que cela fonctionne comme une variable globale correctement déclarée. Cela signifie que vous pouvez vous en sortir sans déclarer de variables globales, mais c'est une mauvaise habitude qui peut provoquer beaucoup de bugs, et il est préférable de toujours utiliser var pour déclarer des variables.

Dans le corps de la fonction, les variables locales portant le même nom écraseront les variables globales.
Bien que vous puissiez écrire du code dans la portée globale sans écrire l'instruction var, vous devez utiliser l'instruction var lors de la déclaration des variables locales. Veuillez vous référer au code suivant :

.
scope = "global";
function foo(){
  scope="local"
  //fk!我们刚刚修改了全局变量!!!
}

Dans les langages de programmation comme C, chaque morceau de code entre accolades a sa propre portée, et les variables ne sont pas visibles en dehors de la section de code où elles sont déclarées. Nous appelons cette portée de bloc ); portée au niveau du bloc en js, mais la portée de la fonction est utilisée à la place : les variables sont définies dans le corps de la fonction dans lequel elles sont déclarées et dans tout corps de fonction dans lequel ce corps de fonction est imbriqué (qu'il s'agisse d'une imbrication interne ou d'une imbrication externe ?)
La portée de la fonction js signifie que toutes les variables déclarées dans la fonction sont toujours visibles dans le corps de la fonction, ce qui signifie que les variables peuvent même être utilisées avant d'être déclarées. Cette fonctionnalité de js est officieusement appelée levage de déclaration, c'est-à-dire que toutes les variables déclarées dans une fonction js (mais non affectées) sont « avancées » en haut du corps de la fonction.

var scope = "global";
function f(){
  console.log(scope);
  //输出"undefined"而不是"global"
  var scope = "local";
  //变量在这里赋初始值,但变量在函数体内任何地方均是有定义的
  console.log(scope);
  //输出"local"

Le code ci-dessus est équivalent à :

function f(){
  var scope;
  console.log(scope);
  scope = "local";
  console.log(scope);
  }

Lors de la déclaration d'une variable globale js, elle définit en fait une propriété de l'objet global.
Lorsque vous déclarez une variable avec var, l'attribut créé n'est pas configurable, c'est-à-dire qu'il ne peut pas être supprimé avec l'opérateur delete mais si vous n'utilisez pas le mode strict et n'attribuez pas de valeur à une variable non déclarée, js créera automatiquement un global ; variable. Les variables créées de cette manière sont des propriétés configurables normales de l'objet global et peuvent être supprimées :

var x = 1; 
y = 2;
this.z = 3; //同上
delete x; //返回false,无法删除变量
delete y; //返回true,变量被删除
delete this.z //同上

J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn