Parce que les données sont la chose la plus importante, nous collectons, analysons et classons les données 10 errores de JavaScript plus importants. Cela donne aux utilisateurs une bonne vue d'ensemble plutôt qu'un gros vidage écrasant comme vous le verriez dans un fichier journal.
Nous nous concentrons sur les erreurs les plus susceptibles de vous affecter, vous et vos utilisateurs. Pour ce faire, nous classons les erreurs par le nombre de projets qui les subissent dans différentes entreprises. Si nous ne regardons que le nombre total de fois où chaque erreur s'est produite, les clients à volume élevé pourraient submerger l'ensemble de données avec des erreurs qui ne sont pas pertinentes pour la plupart des lecteurs.
Voici les 10 principales erreurs JavaScript
Chaque erreur a été raccourcie pour en faciliter la lecture. Plongeons-nous dans chacun d'eux pour déterminer ce qui peut le provoquer et comment éviter de le créer.
Type d'erreur non détecté: impossible de lire la propriété
Si vous êtes un développeur JavaScript, vous avez probablement vu cette erreur plus que vous ne voudriez l'admettre. Cela se produit dans Chrome lorsque vous lisez une propriété ou appelez une méthode sur un objet non défini. Vous pouvez le tester très facilement dans la console de développement Chrome.
Esto puede ocurrir por muchas razones, pero una común es la inicialización incorrecta del estado mientras se renderizan los componentes de la interface utilisateur.
TypeError: 'undefined' n'est pas un objet
Il s'agit d'une erreur qui se produit dans Safari lorsque vous lisez une propriété ou appelez une méthode sur un objet non défini. Vous pouvez le tester très facilement dans la console de développement Safari. Il s'agit essentiellement de la même erreur que celle ci-dessus pour Chrome, mais Safari utilise un message d'erreur différent.
TYPE D'ERREUR: null n'est pas un objet
Il s'agit d'une erreur qui se produit dans Safari lorsque vous lisez une propriété ou appelez une méthode sur un objet nul. Vous pouvez le tester très facilement dans la console de développement Safari.
Fait intéressant, en JavaScript, null et undefined ne sont pas les mêmes, c'est pourquoi nous voyons deux messages d'erreur différents. Undefined est généralement une variable qui n'a pas été affectée, tandis que null signifie que la valeur est vide.
Una forma en que este error puede ocurrir en un ejemplo del mundo real es si intenta usar un elemento DOM en su JavaScript antes de que el elemento être cargado. Esto se debe a que la API DOM devuelve nullpara las referencias de objetos que están en blanco.
Cualquier código JS que ejecute y trate con elementos DOM debe ejecutarse después de que se hayan creado los elementos DOM. El código JS se interpreta de arriba hacia abajo como se indica en el HTML. Por lo tanto, si hay una etiqueta antes de los elementos DOM, el código JS dentro de la etiqueta script se ejecutará cuando el le navigateur analice la página HTML. Obtendrá este error si los elementos DOM no han a sido creados antes de cargar el script.
(inconnu): erreur de script
El error de Script se produce cuando un error de JavaScript no detectado cruza los límites del domaine en violación de la política de origen cruzado. Por ejemplo, si aloja tu código JavaScript en una CDN, cualquier error no detectado (errores que burbujean hasta el manejador de errores window.onerror, au lieu d'être pris dedans essayer-attraper) il sera signalé comme une simple "erreur de script" au lieu de contenir des informations utiles. Il s'agit d'une mesure de sécurité du navigateur conçue pour empêcher le passage de données à travers des domaines qui ne pourraient autrement pas communiquer.
TypeError: l'objet ne prend pas en charge la propriété
Il s'agit d'une erreur qui se produit dans IE lorsqu'une méthode non définie est appelée. Vous pouvez le tester dans IE Developer Console.
Esto es equivalente al error «TypeError: ‘undefined’ is not a function» en Chrome. Sí, diferentes navigateurs pueden tener diferentes mensajes de error para el mismo error lógico.
Este es un problema común para IE en aplicaciones la toile que emplean espaciado de nombres JavaScript. Cuando este es el caso, el problema del 99,9% de las veces es la incapacidad de IE para enlazar métodos dentro del espacio de nombres actual con esta Mot-clé. Por ejemplo, si tiene el espacio de nombres JS Rollbar con el método isAwesome.
TypeError: 'undefined' n'est pas une fonction
Este es un error que se produce en Chrome cuando se llama a una función indefinida. Puede probarlo en la consola de desarrollo Chrome y en la consola de desarrollo Mozilla Firefox.
Comme les techniques de codage JavaScript et les modèles de conception sont devenus de plus en plus sophistiqués au fil des ans, il y a eu une augmentation correspondante de la prolifération des portées d'auto-référencement dans les rappels et les fermetures, qui sont une source assez courante de telle ou telle confusion.
Uncaught RangeError
Il s'agit d'une erreur qui se produit dans Chrome dans plusieurs circonstances. L'une est lorsqu'une fonction récursive est appelée qui ne se termine pas. Vous pouvez le tester dans la console de développement Chrome.
Cela peut également se produire si une valeur est transmise à une fonction hors limites. De nombreuses fonctions n'acceptent qu'une plage spécifique de nombres pour leurs valeurs d'entrée. Par exemple, Number.toExponential (chiffres) y Number.toFixed (chiffres) accepter les chiffres de 0 à 100, et Number.toPrecision (chiffres) accepter les chiffres de 1 à 100.
TypeError: impossible de lire la propriété 'length'
Il s'agit d'une erreur qui se produit dans Chrome en raison de la propriété de longueur de lecture d'une variable non définie. Vous pouvez le tester dans la console de développement Chrome.
La longueur définie se trouve normalement dans un tableau, mais vous pouvez rencontrer cette erreur si le tableau n'est pas initialisé ou si le nom de la variable est masqué dans un autre contexte. Comprenons cette erreur avec l'exemple suivant.
Uncaught TypeError: Impossible de définir la propriété
Lorsque nous essayons d'accéder à une variable non définie, elle retourne toujours undefined et nous ne pouvons pas obtenir ou définir une propriété de undefined. Dans ce cas, une application lancera "Uncaught TypeError ne peut pas définir la propriété d'undefined".
ReferenceError: l'événement n'est pas défini
Este error se produce cuando se intenta acceder a una variable que está indefinida o fuera del portée actual. Puedes probarlo muy fácilmente en el navegador Chrome.
Si obtiene este error al utilizar el sistema de gestión de eventos, asegúrese de utilizar el objeto de un événement pasado como parámetro. Los navegadores más antiguos como IE ofrecen un evento de variable global, y Chrome automáticamente adjunta la variable de evento al handler. Firefox no lo añadirá automáticamente. Las bibliotecas como jQuery intentan normalizar este comportamiento. Sin embargo, es una buena práctica usar la que se ha pasado a la función del manejador de eventos.
conclusion
Il s'avère que bon nombre de ces erreurs sont nulles ou non définies. Un bon système de vérification de type statique comme Manuscrit podría ayudarte a evitarlos si utilizas la opción del compilador estricto. Puede advertirte si se espera un tipo pero no se ha definido. Incluso sin Manuscrit, il est utile d'utiliser des clauses de protection pour vérifier si les objets ne sont pas définis avant de les utiliser.
Nous espérons que vous avez appris quelque chose de nouveau et que vous pourrez éviter des erreurs à l'avenir, ou que ce guide vous a aidé à résoudre une égratignure dans la tête. Cependant, même avec les meilleures pratiques, des erreurs inattendues apparaissent en production. Il est important d'avoir une visibilité sur les erreurs qui affectent les utilisateurs et de disposer de bons outils pour les résoudre rapidement.