La plupart du temps, les opérateurs et les fonctions convertissent automatiquement les valeurs qui leur sont données dans le bon type.
Par exemple, alert
convertit automatiquement n’importe quelle valeur en chaîne pour l’afficher. Les opérations mathématiques convertissent des valeurs en nombres.
Il existe également des cas où nous devons convertir explicitement une valeur dans le type attendu.
Je ne parle pas encore d'objets
Dans ce chapitre, nous ne couvrirons pas les objets. Pour l'instant, nous parlerons uniquement des primitives.
Plus tard, après avoir découvert les objets, dans le chapitre Conversion d'objet en primitive, nous verrons comment les objets s'intègrent.
La conversion de chaîne se produit lorsque nous avons besoin de la forme chaîne d’une valeur.
Par exemple, alert(value)
le fait pour afficher la valeur.
Nous pouvons également appeler la fonction String(value)
pour convertir une valeur en chaîne :
soit valeur = vrai ; alert(type de valeur); // booléen valeur = Chaîne (valeur); // maintenant la valeur est une chaîne "true" alert(type de valeur); // chaîne
La conversion de chaînes est généralement évidente. Un false
devient "false"
, null
devient "null"
, etc.
La conversion numérique dans les fonctions et expressions mathématiques s'effectue automatiquement.
Par exemple, lorsque la division /
est appliquée à des non-nombres :
alerte( "6" / "2" ); // 3, les chaînes sont converties en nombres
Nous pouvons utiliser la fonction Number(value)
pour convertir explicitement une value
en nombre :
laissez str = "123" ; alert(typede str); // chaîne laissez num = Nombre (str); // devient un nombre 123 alert(type de numéro); // nombre
Une conversion explicite est généralement requise lorsque nous lisons une valeur à partir d'une source basée sur une chaîne, comme un formulaire texte, mais que nous nous attendons à ce qu'un nombre soit saisi.
Si la chaîne n'est pas un nombre valide, le résultat d'une telle conversion est NaN
. Par exemple:
let age = Number("une chaîne arbitraire au lieu d'un nombre"); alerte (âge); // NaN, la conversion a échoué
Règles de conversion numérique :
Valeur | Devient… |
---|---|
undefined | NaN |
null | 0 |
true and false | 1 et 0 |
string | Les espaces (y compris les espaces, les tabulations t , les nouvelles lignes n etc.) du début et de la fin sont supprimés. Si la chaîne restante est vide, le résultat est 0 . Sinon, le nombre est « lu » à partir de la chaîne. Une erreur donne NaN . |
Exemples :
alerte( Nombre(" 123 ") ); // 123 alerte( Nombre("123z") ); // NaN (erreur de lecture d'un nombre à "z") alert( Nombre(true) ); // 1 alert( Nombre(faux) ); // 0
Veuillez noter que null
et undefined
se comportent différemment ici : null
devient zéro tandis que undefined
devient NaN
.
La plupart des opérateurs mathématiques effectuent également une telle conversion, nous le verrons dans le chapitre suivant.
La conversion booléenne est la plus simple.
Cela se produit dans les opérations logiques (nous aborderons plus tard les tests de condition et d'autres choses similaires) mais peut également être effectué explicitement avec un appel à Boolean(value)
.
La règle de conversion :
Les valeurs intuitivement « vides », comme 0
, une chaîne vide, null
, undefined
et NaN
, deviennent false
.
D'autres valeurs deviennent true
.
Par exemple:
alerte( Booléen(1) ); // vrai alerte( Booléen(0) ); // FAUX alert( Boolean("bonjour") ); // vrai alert( Boolean("") ); // FAUX
Attention : la chaîne avec zéro "0"
est true
Certains langages (notamment PHP) traitent "0"
comme false
. Mais en JavaScript, une chaîne non vide est toujours true
.
alerte( Boolean("0") ); // vrai alerte( Boolean(" ") ); // espaces, également vrai (toute chaîne non vide est vraie)
Les trois conversions de type les plus largement utilisées sont en chaîne, en nombre et en booléen.
String Conversion
– Se produit lorsque nous produisons quelque chose. Peut être effectué avec String(value)
. La conversion en chaîne est généralement évidente pour les valeurs primitives.
Numeric Conversion
– Se produit dans les opérations mathématiques. Peut être effectué avec Number(value)
.
La conversion suit les règles :
Valeur | Devient… |
---|---|
undefined | NaN |
null | 0 |
true / false | 1 / 0 |
string | La chaîne est lue « telle quelle », les espaces (y compris les espaces, les tabulations t , les nouvelles lignes n etc.) des deux côtés sont ignorés. Une chaîne vide devient 0 . Une erreur donne NaN . |
Boolean Conversion
– Se produit dans les opérations logiques. Peut être effectué avec Boolean(value)
.
Suit les règles :
Valeur | Devient… |
---|---|
0 , null , undefined , NaN , "" | false |
toute autre valeur | true |
La plupart de ces règles sont faciles à comprendre et à mémoriser. Les exceptions notables où les gens font généralement des erreurs sont :
undefined
est NaN
sous forme de nombre, pas 0
.
"0"
et les chaînes contenant uniquement des espaces comme " "
sont vraies en tant que booléen.
Les objets ne sont pas couverts ici. Nous y reviendrons plus tard dans le chapitre Conversion d'objet en primitive consacré exclusivement aux objets après avoir appris des choses plus basiques sur JavaScript.