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

Corso di base JavaScript

Oggetto JavaScript

Funzione JavaScript

DOM HTML JS

BOM del browser JS

Corso di base AJAX

Manuale di riferimento JavaScript

Errori Comuni JavaScript

JavaScript è una delle lingue di programmazione più popolari dell'industria moderna. Se vuoi imparare questa lingua, evita gli errori seguenti.

Uso improprio dell'operatore di assegnazione

Se non prestiamo attenzione a usare l'operatore di assegnazione (=) invece dell'operatore di comparazione (==) nell'istruzione if, il programma JavaScript potrebbe produrre risultati inaspettati.

Se num non è uguale a 20, questa istruzione if restituisce false:

var num = 0;
if (num == 20)
Testa vedere‹/›

Questa istruzione if restituisce true perché 20 è true:

var num = 0;
if (num = 20)
Testa vedere‹/›

L'assegnazione sempre restituisce il valore assegnato.

Usare "==" al posto di "==="

Quando le persone iniziano a usare JavaScript, questo è forse l'errore più comune.

Nella comparazione convenzionale, il tipo di dati non è importante. Se l'istruzione if restituisce true:

var a = 20;
var b = "20";
if (a == b)
Testa vedere‹/›

Nella comparazione rigorosa, il tipo di dati è davvero importante. Questa istruzione if restituisce false:

var a = 20;
var b = "20";
if (a === b)
Testa vedere‹/›

La differenza tra (a == b) e (a === b) è:

  • == Se a è uguale a b, viene restituito true

  • === Se a è uguale a b e appartengono astesso tipose

Di solito, è sempre consigliabile utilizzare ===, noto anche come operatore di uguaglianza stretta o operatore di uguaglianza esatta.

Somma e concatenazione confusibili

Dal capitolo precedente si può sapere che l'operatore + viene utilizzato per somma e concatenazione.

Inoltreriguarda l'aggiuntanumeri.

concatenazioneriguarda l'aggiuntaLa stringa.

Quindi, aggiungere un numero come numero e aggiungere un numero come stringa produce risultati diversi:

var a = 10;
var b = 5;
var c = a + b; // c = 15
var a = 10;
var b = "5";
var c = a + b; // c = "105"
Testa vedere‹/›

Uso errato di float

Tutti i numeri in JavaScript vengono memorizzati come numeri a virgola mobile di 64 bit (Floats).

Tutti i linguaggi di programmazione (compreso JavaScript) hanno difficoltà con i valori a virgola mobile precisi:

var a = 0.1;
var b = 0.2;
var c = a + b; // il risultato di c non sarà 0.3
Testa vedere‹/›

Per risolvere il problema menzionato, aiuta a moltiplicare e dividere:

var c = (a * 10 + b * 10) / 10; // c = 0.3
Testa vedere‹/›

Righe di stringa in JavaScript

JavaScript vi permetterà di dividere una frase in due righe:

var str =
"w3codebox Tutorial";
Testa vedere‹/›

Ma interrompere una frase nel mezzo della stringa non avrà alcun effetto:

var str = "w3codebox
Tutorial";
Testa vedere‹/›

Se è necessario interrompere una frase all'interno di una stringa, è necessario utilizzare il "backslash" (carattere di escape):

var str = "w3codebox \
Tutorial";
Testa vedere‹/›

    Un'altra soluzione è usareTemplate literals(backtick ``)stringhe. Queste eliminano la necessità di estrarre stringhe lunghe:

var str = `Air Pollution is introduction of chemicals to the
atmosphere. danneggia l'equilibrio ambientale e causa
several diseases.`;
Testa vedere‹/›

Punto e virgola posizionato male

A causa della posizione errata del punto e virgola, il seguente codice verrà eseguito indipendentemente dal valore di num:

if (num === 45);
{
  //blocco di codice  
}
Testa vedere‹/›

Definizioni che finiscono con una virgola

Le virgole finali nelle definizioni di oggetti e array sono legali in ECMAScript 5.

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

Tuttavia, aggiungere una virgola alla fine dell'array farà crollare Internet Explorer 8.

JSON non consente virgole finali.

Ambito bloccato

JavaScript non crea un nuovo ambito per ogni blocco di codice.

Si applica in molti linguaggi di programmazione, ma non in JavaScript.

for (var i = 0; i < 10; i++) {
  // some code
}
document.write(i); // Questo output sarà?
Testa vedere‹/›

UsareletLa parola chiave crea un nuovo ambito per ogni blocco di codice:

for (let i = 0; i < 10; i++) {
  // some code
}
document.write(i); // Questo output sarà?
Testa vedere‹/›

Differenza tra null e undefined

undefinedIl valore indica che non è stata assegnata alcun valore alla variabile o che la variabile non è stata dichiarata.

nullIl valore indica che l'oggetto non ha alcun valore.

Questo rende difficile testare se un oggetto è vuoto.

è possibile testare se il tipo èundefinedper testare l'esistenza di un oggetto:

if (typeof myObj === "undefined")
Testa vedere‹/›

    ma non è possibile testare se un oggetto ènullperché se l'oggettoundefinede questo genererà un errore:

if (myObj === null)
Testa vedere‹/›

Per risolvere questo problema, è necessario testare se un oggetto non èundefinede non ènull:

if (typeof myObj !== "undefined" && myObj !== null)
Testa vedere‹/›