English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JavaScript是当今行业中最流行的编程语言之一。如果您想学习这种语言,请避免以下错误。
如果我们不小心在if语句中使用赋值运算符(=)而不是比较运算符(==),则JavaScript程序可能会产生意外结果。
如果num不等于20,则此if语句返回false:
var num = 0; if (num == 20)Testez et voyez‹/›
此if语句返回true,因为20为true:
var num = 0; if (num = 20)Testez et voyez‹/›
分配总是返回分配的值。
当人们开始使用JavaScript时,这可能是最常见的错误。
在常规比较中,数据类型无关紧要。如果if语句返回true:
var a = 20; var b = "20"; if (a == b)Testez et voyez‹/›
在严格的比较中,数据类型确实很重要。此if语句返回false:
var a = 20; var b = "20"; if (a === b)Testez et voyez‹/›
(a ==b)和(a ===b)之间的区别是:
== 如果a等于b,则返回true
===如果a等于b,并且它们属于同一类型则返回true
Généralement, vous devriez toujours utiliser ===, appelé opérateur d'égalité stricte ou opérateur identique.
Comme mentionné dans les chapitres précédents,+les opérateurs sont utilisés pour l'addition et la concaténation.
De plusest concernant l'ajoutnombres.
concaténationest concernant l'ajoutLa concaténation des chaînes de caractères.
Par conséquent, ajouter des nombres comme des nombres et ajouter des nombres comme des chaînes de caractères produira des résultats différents :
var a = 10; var b = 5; var c = a + b; // c = 15 var a = 10; var b = "5"; var c = a + b; // c = "105"Testez et voyez‹/›
Tous les nombres en JavaScript sont stockés comme64les nombres flottants (Floats).
Tous les langages de programmation (y compris JavaScript) ont des difficultés avec les valeurs flottantes exactes :
var a = 0.1; var b = 0.2; var c = a + b; // le résultat de c ne sera pas 0.3Testez et voyez‹/›
Pour résoudre le problème mentionné ci-dessus, il est utile de multiplier et de diviser :
var c = (a * 10 + b * 10) / 10; // c = 0.3Testez et voyez‹/›
JavaScript vous permet de diviser une instruction en deux lignes :
var str = "w3codebox Tutorial";Testez et voyez‹/›
Cependant, interrompre une instruction au milieu d'une chaîne de caractères ne fonctionnera pas :
var str = "w3codebox Tutorial";Testez et voyez‹/›
Si vous devez interrompre une instruction dans une chaîne de caractères, vous devez utiliser le "antislash" (caractère d'échappement) :
var str = "w3codebox \ Tutorial";Testez et voyez‹/›
Une autre solution consiste à utiliserlitéraux de template(apostrophes inverses ``)chaînes de caractères. Cela élimine le besoin de convertir des chaînes de caractères longues :
var str = `Pollution de l'air est l'introduction de produits chimiques dans le atmosphère. Il endommage l'équilibre environnemental et cause several diseases.`;Testez et voyez‹/›
En raison de la mauvaise position du point-virgule, le code suivant sera toujours exécuté, quel que soit la valeur de num :
if (num === 45); { // bloc de code }Testez et voyez‹/›
Les virgules à la fin des définitions d'objets et d'arrays dans ECMAScript 5est légal en Chine.
let fruits = ["Apple", "Mango", "Banana", "Orange",];//array let user = {firstName: "Vishal", lastName: "Choudhary", age:22,};//objet
Cependant, l'ajout d'une virgule à la fin de l'array, Internet Explorer 8Cela va s'effondrer.
JSON n'autorise pas les virgules en fin de liste.
JavaScript ne crée pas de nouveaux domaines pour chaque bloc de code.
S'applique dans de nombreux langages de programmation, mais pas en JavaScript.
for (var i = 0; i < 10; i++) { // some code } document.write(i); // Qu'est-ce qui sortira?Testez et voyez‹/›
UtilisezletLes mots-clés créent un nouveau domaine pour chaque bloc de code :
for (let i = 0; i < 10; i++) { // some code } document.write(i); // Qu'est-ce qui sortira?Testez et voyez‹/›
undefinedLa valeur indique que la valeur n'a pas été assignée à la variable, ou que la variable n'a pas été déclarée.
nullLa valeur indique que l'objet n'a pas de valeur définie intentionnellement.
Ce qui rend la testabilité de l'objet vide un peu difficile.
Il est possible de tester si le type estundefined,pour tester l'existence d'un objet :
if (typeof myObj === "undefined")Testez et voyez‹/›
Mais vous ne pouvez pas tester si un objet estnull,parce que si l'objetundefined,ce qui provoquera une erreur :
if (myObj === null)Testez et voyez‹/›
Pour résoudre ce problème, il faut tester si un objet n'est pasundefined,et ce n'est pasnull:
if (typeof myObj !== "undefined" && myObj !== null)Testez et voyez‹/›