Maison > interface Web > js tutoriel > Résumé des points clés auxquels il faut prêter attention dans les applications pratiques de JavaScript

Résumé des points clés auxquels il faut prêter attention dans les applications pratiques de JavaScript

伊谢尔伦
Libérer: 2017-07-26 13:44:26
original
1077 Les gens l'ont consulté

Toutes les fonctions que vous créez sont sensibles à la casse.

Les guillemets simples (« chaîne ») et les guillemets doubles (« chaîne ») n'ont pas de signification particulière dans JavaScript. Les différences peuvent être utilisées pour créer Mais en principe général, la plupart des développeurs WEB choisissent d'utiliser des guillemets simples au lieu de guillemets doubles, car la spécification XHTML exige que toutes les valeurs d'attribut XHTML soient placées entre guillemets doubles.
JavaScript ne prend pas en charge. surcharge. En JavaScript, lorsqu'un script est exécuté, il ne prend pas en compte les paramètres lors de la définition de la fonction, mais utilise directement la dernière fonction définie dans la chaîne de portée. Cela signifie qu'il n'y aura toujours qu'une seule instance d'une fonction portant le même nom

La fermeture est un concept lié à la portée. Elle fait référence à la fonction interne même une fois la fonction externe terminée. exécution et se termine. Après cela, vous pouvez toujours accéder aux propriétés de sa fonction externe. Lorsqu'une variable ou une méthode est référencée, JavaScript analysera le domaine d'utilisation le long de la chaîne de domaines d'utilisation formée par le chemin d'exécution de l'objet, recherchera la valeur la plus récemment définie de la variable et utilisera cette valeur une fois trouvée.

function initAnchors(event){ 
  for (var i=1; i <=3; i++){ 
    var anchor = document.GetElementById(&#39;anchor&#39; + i); 
    anchor.attachEvent(&#39;onclick&#39;, function() {  
    alert(&#39;my id is anchor&#39; + i); 
    }); 
  } 
}
Copier après la connexion

Supposons qu'il y ait trois éléments A dans la page, avec des identifiants allant de Anchor1 à Anchor3. Le programme enregistre les événements onclick pour les trois éléments A. En cliquant sur l'élément A, vous affichez "mon identifiant est AnchorX". mais en fait, ce n'est pas le cas lors de l'exécution. Cliquer sur chaque élément A affiche "mon identifiant est Anchor4". Pourquoi ? Parce que la valeur de i est en fait obtenue à partir de la chaîne de domaines lorsque l'événement de clic se produit, initAnchors() a été exécuté et la valeur de i est égale à 4. La solution peut être la suivante :

function registerAnchorListner(anchor,i){ 
  anchor.attachEvent(&#39;onclick&#39;, function() {  
    alert(&#39;my id is anchor&#39; + i); 
  }   
} 
function initAnchors(event){ 
  for (var i=1; i <=3; i++){ 
    var anchor = document.GetElementById(&#39;anchor&#39; + i); 
    registerAnchorListner(anchor,i); 
  } 
} 
var anchor = document.GetElementById(&#39;anchor&#39; + i); 
anchor.attachEvent(&#39;onclick&#39;, function() { 
alert(&#39;my id is anchor&#39; + i); 

});
Copier après la connexion

Les objets d'itération sont souvent utilisés lors de l'écriture de scripts, comme suit :

var list = [1,2,3,4]; 
for(var i = 0;i < list.length; i++){ 
  alert(list); 
}
Copier après la connexion

Une autre méthode d'itération alternative consiste à utiliser une boucle for Itérer sur chaque attribut situé dans (in)list :

for(var i in list){ 
  alert(list); 
}
Copier après la connexion

À ce stade, vous obtenez le même résultat qu'en utilisant la méthode d'itération précédente, car list est un objet Array.
Cependant, vous devez être très prudent lorsque vous utilisez la méthode for(var i in item) pour manipuler des objets similaires à des tableaux mais pas à des tableaux, comme suit

var all=document.getElementsByTagName(&#39;*&#39;); 
for(var i in all){ 
  //对照all元素进行某些操作 
}
Copier après la connexion

Dans ce processus d'itération, i's Les valeurs seront respectivement égales à length, item et nomméeItem, ce qui est susceptible de provoquer des erreurs inattendues dans le code. Dans certains cas, vous pouvez utiliser la méthode hasOwnProperty() de l'objet pour éviter ce problème. Si les propriétés ou méthodes de l'objet ne sont pas héritées, la méthode hasOwnProperty() renvoie true. Autrement dit, la vérification ici n'implique pas les propriétés et les méthodes héritées d'autres objets, mais uniquement les propriétés créées directement dans l'objet spécifique lui-même, telles que les éléments affectés à un tableau. Par conséquent, si vous utilisez cette vérification dans une boucle for, la boucle ignorera l'attribut length, car length n'est pas un véritable attribut du tableau all, mais un attribut hérité de l'objet NameNodeMap qui dérive le tableau all

var all=document.getElementsByTagName(&#39;*&#39;); 
for(var i in all){ 
  if(!all.hasOwnProperty(i)) continue; 
  //对照all元素进行某些操作 
}
Copier après la connexion


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal