Conversion de types JavaScript
- Conversion de chaînes en nombres
- Conversion de nombres en chaînes
- Conversion de dates en nombres
- Conversion de nombres en dates
- Conversion de booléens en nombres
- Conversion de nombres en booléens
Conversion de types JavaScript
Les variables JavaScript peuvent être converties en une nouvelle variable et un autre type de données :
- Par l'utilisation d'une fonction JavaScript
- Automatiquement par JavaScript lui-même
Conversion de chaînes en nombres
La méthode globale Number()
peut convertir des chaînes en nombres.
Les chaînes contenant des nombres (comme "3.14") sont converties en nombres (comme 3.14).
Les chaînes vides sont converties en 0.
Tout le reste est converti en NaN
(pas un nombre).
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
Méthodes numériques
Dans le chapitre Méthodes numériques , vous trouverez d'autres méthodes pouvant être utilisées pour convertir des chaînes en nombres :
Method | Description |
---|---|
Number() | Returns a number, converted from its argument |
parseFloat() | Parses a string and returns a floating point number |
parseInt() | Parses a string and returns an integer |
L'opérateur unaire +
L' opérateur unaire + peut être utilisé pour convertir une variable en un nombre :
Exemple
let y = "5";
// y is a string
let x = + y;
// x is a number
Si la variable ne peut pas être convertie, elle deviendra quand même un nombre, mais avec la valeur NaN
(Pas un nombre) :
Exemple
let y = "John";
// y is a string
let x = + y; // x is a number (NaN)
Conversion de nombres en chaînes
La méthode globale String()
peut convertir des nombres en chaînes.
Il peut être utilisé sur n'importe quel type de nombres, de littéraux, de variables ou d'expressions :
Exemple
String(x) // returns a string from a number variable x
String(123) // returns a string from a number literal 123
String(100 + 23) // returns a string from a number from an expression
La méthode Number toString()
fait de même.
Exemple
x.toString()
(123).toString()
(100 + 23).toString()
Plus de méthodes
Dans le chapitre Méthodes numériques , vous trouverez d'autres méthodes pouvant être utilisées pour convertir des nombres en chaînes :
Method | Description |
---|---|
toExponential() | Returns a string, with a number rounded and written using exponential notation. |
toFixed() | Returns a string, with a number rounded and written with a specified number of decimals. |
toPrecision() | Returns a string, with a number written with a specified length |
Conversion de dates en nombres
La méthode globale Number()
peut être utilisée pour convertir des dates en nombres.
d = new Date();
Number(d) // returns 1404568027739
La méthode de la date getTime()
fait la même chose.
d = new Date();
d.getTime() // returns 1404568027739
Conversion de dates en chaînes
La méthode globale String()
peut convertir des dates en chaînes.
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
La méthode Date toString()
fait de même.
Exemple
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
Dans le chapitre Méthodes de date , vous trouverez d'autres méthodes pouvant être utilisées pour convertir des dates en chaînes :
Method | Description |
---|---|
getDate() | Get the day as a number (1-31) |
getDay() | Get the weekday a number (0-6) |
getFullYear() | Get the four digit year (yyyy) |
getHours() | Get the hour (0-23) |
getMilliseconds() | Get the milliseconds (0-999) |
getMinutes() | Get the minutes (0-59) |
getMonth() | Get the month (0-11) |
getSeconds() | Get the seconds (0-59) |
getTime() | Get the time (milliseconds since January 1, 1970) |
Conversion de booléens en nombres
La méthode globale Number()
peut également convertir des booléens en nombres.
Number(false) // returns 0
Number(true) // returns 1
Conversion de booléens en chaînes
La méthode globale String()
peut convertir des booléens en chaînes.
String(false) // returns "false"
String(true) // returns "true"
La méthode booléenne toString()
fait de même.
false.toString() // returns "false"
true.toString() // returns "true"
Conversion automatique des types
Lorsque JavaScript essaie d'opérer sur un "mauvais" type de données, il essaie de convertir la valeur en un type "correct".
Le résultat n'est pas toujours à la hauteur de vos attentes :
5 + null // returns 5 because null is converted to 0
"5" + null // returns "5null" because null is converted to "null"
"5" + 2 // returns
"52" because 2 is converted to "2"
"5" - 2 // returns 3 because "5" is converted to 5
"5" * "2" // returns
10 because "5" and "2" are
converted to 5 and 2
Conversion automatique des chaînes
JavaScript appelle automatiquement la toString()
fonction de la variable lorsque vous essayez de "sortir" un objet ou une variable :
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toString converts to "[object Object]"
// if myVar = [1,2,3,4] // toString converts to "1,2,3,4"
// if myVar = new Date() // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"
Les nombres et les booléens sont également convertis, mais ce n'est pas très visible :
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
Tableau de conversion des types JavaScript
Ce tableau montre le résultat de la conversion de différentes valeurs JavaScript en nombre, chaîne et booléen :
Original Value |
Converted to Number |
Converted to String |
Converted to Boolean |
Try it |
---|---|---|---|---|
false | 0 | "false" | false | |
true | 1 | "true" | true | |
0 | 0 | "0" | false | |
1 | 1 | "1" | true | |
"0" | 0 | "0" | true | |
"000" | 0 | "000" | true | |
"1" | 1 | "1" | true | |
NaN | NaN | "NaN" | false | |
Infinity | Infinity | "Infinity" | true | |
-Infinity | -Infinity | "-Infinity" | true | |
"" | 0 | "" | false | |
"20" | 20 | "20" | true | |
"twenty" | NaN | "twenty" | true | |
[ ] | 0 | "" | true | |
[20] | 20 | "20" | true | |
[10,20] | NaN | "10,20" | true | |
["twenty"] | NaN | "twenty" | true | |
["ten","twenty"] | NaN | "ten,twenty" | true | |
function(){} | NaN | "function(){}" | true | |
{ } | NaN | "[object Object]" | true | |
null | 0 | "null" | false | |
undefined | NaN | "undefined" | false |
Les valeurs entre guillemets indiquent des valeurs de chaîne.
Les valeurs rouges indiquent des valeurs auxquelles (certains) programmeurs ne s'attendent pas.