⊗jsPmBsATC 43 of 505 menu

Conversione Automatica dei Tipi di Dati

Come già sapete, le stringhe in JavaScript dovrebbero essere racchiuse tra virgolette. Può succedere che tutti i caratteri della stringa siano cifre:

let a = '123';

In questo caso la variabile a è anche essa una stringa, ma con una certa particolarità.

Il punto è il seguente: se su una stringa con cifre si esegue un'operazione matematica - questa operazione verrà eseguita come se avessimo effettivamente dei numeri, e non delle stringhe:

alert('2' * '3'); // visualizzerà 6

In questo caso JavaScript vede che stiamo tentando di eseguire un'operazione non consentita per le stringhe, ma consentita per i numeri.

Vede anche che, di fatto, le nostre stringhe sono numeri tra virgolette. Pertanto JavaScript esegue automaticamente la conversione di queste stringhe in numeri ed esegue la corrispondente operazione matematica su di essi.

Questo funziona se nelle nostre stringhe ci sono solo cifre. Se ci fosse almeno una lettera - JavaScript considererà l'operazione non corretta e ne farà risultare il valore NaN:

alert('2' * '3s'); // visualizzerà NaN

Inoltre, la conversione automatica avviene se l'operazione è matematicamente corretta, ma non consentita per le stringhe.

Ad esempio, le stringhe non possono (mentre i numeri sì) essere moltiplicate, divise, sottratte, quindi in tutte queste operazioni ci sarà una conversione automatica delle stringhe con cifre in numeri.

Tuttavia, le stringhe, come i numeri, vengono sommate tramite l'operatore +. Ciò significa che nel caso dell'addizione non ci sarà una conversione automatica :

let a = '1' + '2'; alert(a); // visualizzerà '12' - è avvenuta una concatenazione di stringhe

Se uno degli addendi è un numero, e l'altro - una stringa, vince sempre la stringa:

let a = 1 + '2'; alert(a); // visualizzerà '12'

In questi casi JavaScript, al contrario, converte automaticamente i numeri in stringhe ed esegue la concatenazione delle stringhe.

Ci sono, tuttavia, delle particolarità quando gli addendi sono più di due: in questo caso la conversione a un tipo specifico dipende dall'ordine di esecuzione delle operazioni.

Nel seguente esempio prima 2 e 3 verranno sommati come numeri, e poi il risultato verrà aggiunto alla stringa '1' già come stringa '5', che alla fine darà la stringa '15':

let a = '1' + (2 + 3); alert(a); // visualizzerà '15'

Se invece si tolgono le parentesi, tutto verrà sommato da sinistra a destra. Cioè prima alla stringa '1' verrà aggiunto il numero 2 e di conseguenza si otterrà la stringa '12'. Poi a questa stringa verrà aggiunto il numero 3 e di conseguenza si otterrà la stringa '123':

let a = '1' + 2 + 3; alert(a); // visualizzerà '123'

Ma nel seguente esempio i numeri 2 e 3 sono scritti all'inizio, quindi prima verranno sommati come numeri, dando come risultato il numero 5, e poi a questo numero verrà aggiunta la stringa '1', dando alla fine la stringa '51':

let a = 2 + 3 + '1'; alert(a); // visualizzerà '51'

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5' + '2'; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5' + 2; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = 5 + '2'; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = 5 + 2; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5' * '2'; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5' - '2'; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5' / '2'; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5' % '2'; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5s' * '2'; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5s' + '2'; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = (-'5') + (-'2'); alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5' * 1 + '2' * 1; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '5' * '1' + '2' * '1'; alert(a);

Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:

let a = '' + 3 + 1; alert(a);
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta