English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript Grundtutorials

JavaScript Objekt

JavaScript Funktion

JS HTML DOM

JS BrowserBOM

AJAX Grundtutorials

JavaScript Referenzhandbuch

Häufige Fehler in JavaScript

JavaScript ist eines der beliebtesten Programmiersprachen in der Branche heute. Wenn Sie dieses Sprach lernen möchten, vermeiden Sie die folgenden Fehler.

Unerwartete Verwendung des Zuweisungsoperators

Wenn wir versehentlich im if-Ausdruck den Zuweisungsoperator (=) anstatt des Vergleichsoperators (==) verwenden, kann das JavaScript-Programm unerwartete Ergebnisse erzeugen.

Wenn num nicht gleich20, dann gibt diese if-Anweisung false zurück:

var num = 0;
if (num == 20)
Testen sehen‹/›

Diese if-Anweisung gibt true zurück, weil20 ist true:

var num = 0;
if (num = 20)
Testen sehen‹/›

Die Zuweisung gibt immer den zugewiesenen Wert zurück.

Verwenden Sie "==" anstelle von "==="

Wenn Menschen beginnen, JavaScript zu verwenden, ist dies möglicherweise der häufigste Fehler.

In der konventionellen Vergleich ist der Datentyp irrelevant. Wenn die if-Anweisung true gibt:

var a = 20;
var b = "20";
if (a == b)
Testen sehen‹/›

In strenger Vergleich, ist der Datentyp tatsächlich wichtig. Diese if-Anweisung gibt false zurück:

var a = 20;
var b = "20";
if (a === b)
Testen sehen‹/›

Der Unterschied zwischen (a == b) und (a === b) ist:

  • == Wenn a gleich b ist, wird true zurückgegeben

  • === Wenn a gleich b ist und sie zudesselben Typs,dann wird true zurückgegeben

Generally, you should always use ===, also known as the strict equality operator or identity operator.

confusing addition and concatenation

From the previous chapters, we can know that+operators are used for addition and concatenation.

Additionallyis about addingnumbers.

concatenationis about addingThe string's.

Therefore, adding numbers as numbers and adding numbers as strings will produce different results:

var a = 10;
var b = 5;
var c = a + b; // c = 15
var a = 10;
var b = "5";
var c = a + b; // c = "105"
Testen sehen‹/›

Incorrect use of float

All numbers in JavaScript are stored as64Bitwise floating-point numbers (Floats).

All programming languages (including JavaScript) have difficulties with precise floating-point values:

var a = 0.1;
var b = 0.2;
var c = a + b;   // The result of c will not be 0.3
Testen sehen‹/›

To solve the above problem, it helps to multiply and divide:

var c = (a * 10 + b * 10) / 10; // c = 0.3
Testen sehen‹/›

JavaScript string line breaks

JavaScript will allow you to split a statement into two lines:

var str =
"w3codebox Tutorial";
Testen sehen‹/›

However, breaking a statement in the middle of a string will not work:

var str = "w3codebox
Tutorial";
Testen sehen‹/›

If you must break a statement in the middle of a string, you must use the "backslash" (escape character):

var str = "w3codebox \
Tutorial";
Testen sehen‹/›

    Another solution is to useTemplate literals(backticks ``)string. These eliminate the need for escaping long strings:

var str = `Air Pollution is introduction of chemicals to the
atmosphere. It damages environmental balance and causes
several diseases.`;
Testen sehen‹/›

Incorrect semicolon placement

Due to the incorrect placement of the semicolon, the following code will always be executed regardless of the value of num:

if (num === 45);
{
  // code block  
}
Testen sehen‹/›

definitions ending with a comma

The trailing comma in object and array definitions in ECMAScript 5is legal in the middle.

let fruits = ["Apple", "Mango", "Banana", "Orange",];//array
let user = {firstName:"Vishal", lastName:"Choudhary", age:22,};//object

However, adding a comma at the end of an array, Internet Explorer 8wird kollabieren.

JSON erlaubt keine followenden Kommas.

Blockreichweite

JavaScript erstellt nicht für jeden Codeblock eine neue Reichweite.

gilt in vielen Programmiersprachen, aber nicht in JavaScript.

for (var i = 0; i < 10; i++) {
  // some code
}
document.write(i);   // Was wird dieser Ausgang sein?
Testen sehen‹/›

VerwendungletSchlüsselwörter erstellen für jeden Codeblock eine neue Reichweite:

for (let i = 0; i < 10; i++) {
  // some code
}
document.write(i);   // Was wird dieser Ausgang sein?
Testen sehen‹/›

Unterschied zwischen null und undefined

undefinedWert weist darauf hin, dass noch kein Wert für die Variable zugewiesen wurde oder die Variable nicht deklariert wurde.

nullWert zeigt an, dass absichtlich kein Objektwert existiert.

das macht es etwas schwierig, zu testen, ob ein Objekt leer ist.

es kann durch das Testen des Typs geprüft werdenundefinedum zu testen, ob das Objekt existiert:

if (typeof myObj === "undefined")
Testen sehen‹/›

    aber Sie können nicht testen, ob das Objektnullweil wenn das Objektundefinedwas einen Fehler auslösen wird:

if (myObj === null)
Testen sehen‹/›

Um dieses Problem zu lösen, muss getestet werden, ob ein Objekt nichtundefinedund nichtnull:

if (typeof myObj !== "undefined" && myObj !== null)
Testen sehen‹/›