Maison interface Web js tutoriel Choses à noter lors de l'utilisation de boucles for en javascript

Choses à noter lors de l'utilisation de boucles for en javascript

Aug 22, 2017 am 11:11 AM
javascript js 注意事项


L'utilisation d'une boucle est pratique si vous souhaitez exécuter le même code encore et encore, avec des valeurs différentes à chaque fois.

Souvent, nous utilisons des boucles for, et le département des boucles for boucle souvent sur un tableau. Plusieurs fois, nous l'écrivons comme ceci :

// 次佳的循环
for (var i = 0; i < myarray.length; i++) {
 // 使用myarray[i]做点什么}
Copier après la connexion

Codez comme celui-ci Bien qu'il n'y ait pas de gros problème. , chaque boucle obtiendra la longueur du tableau, ce qui réduira votre code, surtout lorsque myarray n'est pas un tableau, mais un objet HTMLCollection.

Regardez à nouveau le code suivant :

for (var i = 0, max = myarray.length; i < max; i++) {
 // 使用myarray[i]做点什么}
Copier après la connexion

Ce code n'obtiendra la longueur du tableau qu'une seule fois, ce qui améliore la qualité du code

est accompagné ; par une seule forme var, vous pouvez retirer les variables de la boucle, comme ceci :

function looper() {
 var i = 0,
  max,
  myarray = [];
 // ...
 for (i = 0, max = myarray.length; i < max; i++) {
  // 使用myarray[i]做点什么
 }}
Copier après la connexion

Résumé des problèmes lorsque JavaScript utilise des boucles for

La discussion sur ce problème est venue à l'origine de l'e-mail interne de l'entreprise, je viens d'enregistrer la discussion sur ce problème.

Lors de la localisation du problème, certaines équipes de projet ont constaté que lors de l'utilisation de « for(x in array) », ​​x apparaissait de manière inattendue dans la valeur du navigateur IE.

Plus précisément, si la méthode Array.prototype.indexOf est personnalisée (par exemple, en raison d'une certaine pollution du prototype), cela peut être dû au fait que l'ancienne version du navigateur IE ne prend pas en charge le array.indexOf. Et les développeurs souhaitent l'utiliser, donc un tel navigateur peut avoir le problème suivant :

Array.prototype.indexOf = function(){...};
var arr = [1, 2];for (x in arr) console.log(x);
Copier après la connexion

//affichera

1
2function(){…}
Copier après la connexion

En d'autres termes, la méthode indexOf est affichée.

La solution est simple, soit n'ajoutez pas cette méthode, soit utilisez une boucle comme "for (i=0; i < array.length; i++)" etc.

Mais quelle est la nature du problème ? Certaines personnes pensent que cela peut être dû au fait que l'utilisation de for(x in obj) consiste en fait à traverser un objet, et que l'implémentation de array est en fait la même que celle des objets ordinaires, sauf que key est C'est juste une valeur donnée :

{0:"something", 1:"something else"}
Copier après la connexion

Il a également été mentionné dans une question et réponse stackoverflow qu'il y a une différence entre utiliser for...in et for(;;) lors de la traversée un tableau. Le sens du premier est d'énumérer des objets, il y a deux problèmes :

L'ordre d'énumération ne peut pas être garanti ;

les attributs hérités sont également énumérés ; 🎜> n'est pas correct pour

Array.prototype Concernant la prise en charge de .forEach

, il ressort clairement de ce tableau que IE8 et les versions antérieures ne peuvent pas être prises en charge avec précision : Il existe également une compatibilité avec la méthode forEach Elaboration du sexe. En fait, les principaux frameworks JavaScript (tels que jQuery, Underscore, Prototype, etc.) ont tous des implémentations sûres et générales de fonctionnalités pour chaque.

Il est également mentionné dans le chapitre for in de JSLint que l'instruction for in permet de parcourir les noms d'attributs de l'objet, mais elle traversera également les attributs hérités de la chaîne de prototypes, qui dans de nombreux cas provoquera des imprévus autres que des erreurs. Il existe une solution grossière :

Quelqu'un a également mentionné le problème lors de l'utilisation de
for (name in object)
 { if (object.hasOwnProperty(name))
 { .... } }
Copier après la connexion
for(var i=0;i similaire à cette boucle, car JavaScript Il existe pas de variables au niveau du bloc de code, donc l'autorisation d'accès de i ici est en fait la méthode où elle se trouve. Certains livres conseillent aux programmeurs de placer ces déclarations de variables au même endroit, mais intuitivement parlant, cela n'est pas assez raisonnable dans la plupart des cas. L'utilisation de "let" introduite dans JavaScript 1.7 peut résoudre ce problème, faisant de i une véritable variable de niveau bloc de code :

Enfin, dans le guide de style JavaScript de Google, implique également cette contrainte :
for(let i =0; i < a.length; i++)
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article sur les problèmes auxquels il convient de prêter attention lors de l'utilisation de boucles for en javascript - avec un résumé des questions, j'espère que cela sera utile pour les travaux futurs et. étude, et bienvenue à tous les initiés de l'industrie qui ont fait des critiques et des suggestions.
for-in loop:
Only for iterating over keys in an object/map/hash
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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Apr 03, 2024 am 11:55 AM

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

Wuthering WavesIntroduction aux points nécessitant une attention particulière lors des tests Wuthering WavesIntroduction aux points nécessitant une attention particulière lors des tests Mar 13, 2024 pm 08:13 PM

Pendant le test Mingchao, veuillez éviter les mises à niveau du système, les réinitialisations d'usine et le remplacement de pièces pour éviter que la perte d'informations ne provoque une connexion anormale au jeu. Rappel spécial : il n'y a pas de voie d'appel pendant la période de test, veuillez donc la manipuler avec prudence. Introduction aux précautions lors du test Mingchao : Ne pas mettre à niveau le système, restaurer les paramètres d'usine, remplacer les composants de l'équipement, etc. Notes : 1. Veuillez mettre à niveau le système avec soin pendant la période de test pour éviter la perte d'informations. 2. Si le système est mis à jour, cela peut entraîner un problème d'impossibilité de se connecter au jeu. 3. À ce stade, le canal d'appel n'a pas encore été ouvert. Il est conseillé aux joueurs de choisir s'ils souhaitent effectuer une mise à niveau, à leur propre discrétion. 4. Dans le même temps, un compte de jeu ne peut être utilisé qu’avec un seul appareil Android et un seul PC. 5. Il est recommandé d'attendre la fin du test avant de mettre à niveau le système de téléphonie mobile, de restaurer les paramètres d'usine ou de remplacer l'appareil.

Mar 22, 2024 pm 04:10 PM

Avec l'essor des plateformes de vidéos courtes, Douyin est devenu une partie intégrante de la vie quotidienne de nombreuses personnes. Diffuser en direct sur Douyin et interagir avec les fans sont le rêve de nombreux utilisateurs. Alors, comment démarrer une diffusion en direct sur Douyin pour la première fois ? 1. Comment démarrer une diffusion en direct sur Douyin pour la première fois ? 1. Préparation Pour démarrer la diffusion en direct, vous devez d'abord vous assurer que votre compte Douyin a terminé l'authentification par votre nom réel. Vous pouvez trouver le didacticiel d'authentification par nom réel dans « Moi » -> « Paramètres » -> « Compte et sécurité » dans l'application Douyin. Après avoir terminé l'authentification par nom réel, vous pouvez remplir les conditions de diffusion en direct et démarrer la diffusion en direct sur la plateforme Douyin. 2. Demandez une autorisation de diffusion en direct. Après avoir rempli les conditions de diffusion en direct, vous devez demander une autorisation de diffusion en direct. Ouvrez l'application Douyin, cliquez sur "Moi" -> "Creator Center" -> "Direct

Étapes et précautions pour installer pip sans réseau Étapes et précautions pour installer pip sans réseau Jan 18, 2024 am 10:02 AM

Méthodes et précautions pour installer pip dans un environnement hors ligne L'installation de pip devient un défi dans un environnement hors ligne où le réseau n'est pas fluide. Dans cet article, nous présenterons plusieurs méthodes d'installation de pip dans un environnement hors ligne et fournirons des exemples de code spécifiques. Méthode 1 : utilisez le package d'installation hors ligne. Dans un environnement où vous pouvez vous connecter à Internet, utilisez la commande suivante pour télécharger le package d'installation pip à partir de la source officielle : pipdownloadpip Cette commande téléchargera automatiquement pip et ses packages dépendants à partir de la source officielle. source et enregistrez-le dans le répertoire courant. Déplacez le package compressé téléchargé vers un emplacement distant

Étapes et précautions d'utilisation du stockage local pour stocker des données Étapes et précautions d'utilisation du stockage local pour stocker des données Jan 11, 2024 pm 04:51 PM

Étapes et précautions d'utilisation de localStorage pour stocker des données Cet article présente principalement comment utiliser localStorage pour stocker des données et fournit des exemples de code pertinents. LocalStorage est un moyen de stocker des données dans le navigateur qui conserve les données locales sur l'ordinateur de l'utilisateur sans passer par un serveur. Voici les étapes et les éléments à prendre en compte lors de l'utilisation de localStorage pour stocker des données. Étape 1 : Vérifiez si le navigateur prend en charge LocalStorage

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

La relation entre js et vue La relation entre js et vue Mar 11, 2024 pm 05:21 PM

La relation entre js et vue : 1. JS comme pierre angulaire du développement Web ; 2. L'essor de Vue.js en tant que framework front-end ; 3. La relation complémentaire entre JS et Vue ; Vue.

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

See all articles