English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JavaScript è una delle lingue di programmazione più popolari dell'industria moderna. Se vuoi imparare questa lingua, evita gli errori seguenti.
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.
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.
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‹/›
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.3Testa vedere‹/›
Per risolvere il problema menzionato, aiuta a moltiplicare e dividere:
var c = (a * 10 + b * 10) / 10; // c = 0.3Testa vedere‹/›
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‹/›
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‹/›
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.
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‹/›
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‹/›