Une mauvaise utilisation de JavaScript
Ce chapitre, nous allons discuter de l'utilisation des erreurs JavaScript.
Erreur d'application de l'opérateur d'affectation
Dans le programme JavaScript si vous utilisez une instruction conditionnelle si l'opérateur d'affectation est le signe égal (=) va générer un résultat d'erreur, l'approche correcte consiste à utiliser une comparaison des deux signes égal (==).
si instruction conditionnelle retourne false (nous nous attendons) parce que x est pas égal à 10:
si instruction conditionnelle renvoie vrai (non pas que nous nous attendions) est exécutée , car les conditions de cession x 10,10 est vrai:
si instruction conditionnelle retourne false (pas ce que nous attendions) est exécutée , car les conditions pour l'attribution x 0,0 est fausse:
Renvoie la valeur de l'affectation variable. |
comparaison des erreurs communes
En comparaison classique, le type de données est ignorée, si la déclaration de condition suivante renvoie true:
En opération de comparaison rigoureuse, un calcul d'identité === opérateur, tandis que la valeur de l'expression de la vérification de type, les conditions suivantes instruction if renvoie false:
Cette erreur se produit souvent dans l'instruction switch, commutateur déclaration calculée en utilisant l'opérateur d'identité (===) ont été comparés:
Les exemples suivants exécuteront pop alerte:
Les exemples suivants sont incompatibles parce que le type ne fonctionne pas popups alerte:
Ajout et Considérations de connexion
L' addition de deux nombres ensemble.
La chaîne de connexion pour connecter les deux.
Addition et JavaScript sont connectés en utilisant l'opérateur +.
Ensuite, nous pouvons voir deux nombres ensemble et reliés à une chaîne de chiffres et de distinction à titre d'exemple:
Utilisation de variables en ajoutant les résultats sont incompatibles:
var y = 5;
var z = x + y; Résultats de la z est 15
var x = 10;
var y = "5";
var z = x + y; Résultats de la z est "105"
Essayez »
Notez l'utilisation de données à virgule flottante
JavaScript Toutes les données sont basées sur 64 bits à virgule flottante de type de données (float) à stocker.
Tous les langages de programmation, y compris JavaScript, à point de précision des données à virgule flottante sont difficiles à déterminer:
var y = 0,2;
var z = x + y Les résultats de z est de 0,3
si (z == 0,3) // Retourne false
Essayez »
Je résoudre ce problème, vous pouvez utiliser une multiplication et la division entière à résoudre:
JavaScript Branches de chaîne
Nous utilisons des sauts de ligne pour exécuter des instructions JavaScript dans la chaîne:
Cependant, dans la chaîne de retour directement chariot est accordée pour:
Nous pouvons choisir l'outil de développement ou appuyez sur F12 pour voir le message d'erreur:
les sauts de ligne de chaîne ont besoin d'utiliser une barre oblique inverse (\), comme suit:
Mauvais point-virgule
L'exemple suivant, puisque le point-virgule mal, si le bloc de déclaration du code ne sera pas exécuté:
Retour Précautions d'instruction
JavaScript est la valeur par défaut automatiquement se termine sur la dernière ligne de code.
Les deux exemples suivants renvoient le même résultat (a pas un point-virgule):
JavaScript peut également être utilisé pour mettre fin à une déclaration sur plusieurs lignes.
Les exemples suivants renvoient le même résultat:
Cependant, les exemples suivants de résultats sont renvoyésindéfini:
Pourquoi est-il un tel résultat? Parce que dans JavaScript, des exemples de code et cohérente 4 le code suivant:
function myFunction(a) { var power = 10; return; // 分号结束,返回 undefined a * power; }
résoudre
Si elle est une déclaration incomplète, comme suit:
var
JavaScript tentera de lire la deuxième déclaration de la ligne:
power = 10;
Cependant, parce que cette déclaration est complète:
return
JavaScript éteindra automatiquement la déclaration:
return;
En JavaScript, le point-virgule est facultative.
Depuis le retour est une phrase complète, il sera éteint instruction return JavaScript.
Note: Ne pas briser la ligne de la déclaration de retour. |
Utilisez un nom d'index de tableau
De nombreux langages de programmation permettent l'utilisation du nom que l'index du tableau.
Pour utiliser le nom que l'index du tableau est appelé un tableau associatif (ou hash).
JavaScript ne supporte pas l'utilisation du nom pour les tableaux d'index, seul un index numérique.
Exemples
personne [0] = "John" ;
personne [1] = "Doe" ;
personne [2] = 46;
var x = person.length; // Person.length renvoie 3
var y = personne [0]; // Personne [0] renvoie "John"
Essayez »
En JavaScript, utilisez le nom de l'objet comme un indice.
Si vous utilisez le nom comme un index pour accéder au tableau, JavaScript va redéfinir la gamme standard des objets.
Après avoir effectué cette opération, les méthodes et les propriétés de la matrice ne seront plus utilisés, sinon il va générer une erreur:
Exemples
personne [ "firstName"] = " John";
personne [ "lastName"] = " Doe";
personne [ "age"] = 46 ;
var x = person.length; // person.length retourne 0
var y = personne [0]; // Personne [0] renvoie undefined
Essayez »
Définir un élément de tableau, et, enfin, ne peut pas ajouter une virgule
Les erreurs sont définies:
points = [40, 100, 1, 5, 25, 10,];
La définition correcte de la façon suivante:
points = [40, 100, 1, 5, 25, 10];
Définir l'objet, et enfin ne peut pas ajouter une virgule
Les erreurs sont définies:
websites = {site:"本教程", url:"www.w3big.com", like:460,}
La définition correcte de la façon suivante:
websites = {site:"本教程", url:"www.w3big.com", like:460}
Undefined pas Null
En JavaScript, null pour les objets, undefined pour les variables, les propriétés et les méthodes.
Les objets sont définis uniquement possible comme nulle, sinon undefined.
Si nous voulons tester si la présence de l'objet, lorsque l'objet est pas encore défini lancera une erreur.
Mauvaise utilisation:
if (myObj !== null && typeof myObj !== "undefined")
La bonne façon est que nous devons utiliser typeof pour détecter si un objet a été défini:
if (typeof myObj !== "undefined" && myObj !== null)
Bloquer la portée
JavaScript ne crée pas un nouveau champ dans chaque bloc de code, la portée générale de chaque bloc de code sont globales.
La variable code i suivant retourne 10 au lieu de undefined: