⊗jsPmBsATC 43 of 505 menu

Conversion automatique des types de données

Comme vous le savez déjà, les chaînes de caractères en JavaScript doivent être entourées de guillemets. Il peut arriver que tous les caractères de la chaîne soient des chiffres :

let a = '123';

Dans ce cas, la variable a est également une chaîne de caractères, mais avec une nuance.

L'essence de la nuance est la suivante : si une opération mathématique est effectuée sur une chaîne de chiffres, cette opération sera exécutée comme s'il s'agissait de nombres, et non de chaînes :

alert('2' * '3'); // affichera 6

Dans ce cas, JavaScript voit que nous tentons d'effectuer une opération non autorisée pour les chaînes, mais autorisée pour les nombres.

Il voit également que nos chaînes sont essentiellement des nombres entre guillemets. Par conséquent, JavaScript effectue automatiquement la conversion de ces chaînes en nombres et exécute l'opération mathématique correspondante sur eux.

Cela fonctionne si nos chaînes ne contiennent que des chiffres. S'il y a au moins une lettre - JavaScript considérera l'opération comme incorrecte et donnera comme résultat la valeur NaN :

alert('2' * '3s'); // affichera NaN

En outre, la conversion automatique se produit si l'opération est mathématiquement correcte, mais non autorisée pour les chaînes.

Par exemple, les chaînes ne peuvent pas (contrairement aux nombres) être multipliées, divisées, soustraites, donc dans toutes ces opérations, il y aura une conversion automatique des chaînes contenant des chiffres en nombres.

Cependant, les chaînes, tout comme les nombres, peuvent être additionnées avec l'opérateur +. Cela signifie que dans le cas d'une addition, il n'y aura pas de conversion automatique :

let a = '1' + '2'; alert(a); // affichera '12' - une concaténation de chaînes a eu lieu

Si l'un des opérandes est un nombre et l'autre une chaîne, c'est toujours la chaîne qui l'emporte :

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

Dans de tels cas, JavaScript, au contraire, convertit automatiquement les nombres en chaînes et effectue une concaténation de chaînes.

Il y a cependant des nuances lorsque le nombre d'opérandes est supérieur à deux : dans ce cas, la conversion vers un type spécifique dépend de l'ordre d'exécution des opérations.

Dans l'exemple suivant, d'abord 2 et 3 seront additionnés comme des nombres, puis le résultat sera ajouté à la chaîne '1' déjà en tant que chaîne '5', ce qui donnera finalement la chaîne '15' :

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

Si les parenthèses sont supprimées, tout sera additionné de gauche à droite. C'est-à-dire que d'abord la chaîne '1' sera additionnée au nombre 2, ce qui donnera la chaîne '12'. Ensuite, ce résultat sera additionné au nombre 3, ce qui donnera la chaîne '123' :

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

Mais dans l'exemple suivant, les nombres 2 et 3 sont écrits au début, donc d'abord ils seront additionnés comme des nombres, donnant le nombre 5, puis ce nombre sera ajouté à la chaîne '1', donnant finalement la chaîne '51' :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

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

Sans exécuter le code, déterminez ce qui sera affiché à l'écran :

let a = '' + 3 + 1; alert(a);
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser