Conversion de Type en 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 Type en JavaScript

Les variables JavaScript peuvent être converties en une nouvelle variable d'un autre type de données :

  • En utilisant une fonction JavaScript
  • Automatiquement par JavaScript lui-même

Conversion de Chaînes en Nombres

La méthode globale Number() convertit une variable (ou une valeur) en un nombre.

Une chaîne numérique (comme "3.14") se convertit en un nombre (comme 3.14).

Une chaîne vide (comme "") se convertit en 0.

Une chaîne non numérique (comme "John") se convertit en NaN (Not a Number).

Exemples

Ceux-ci se convertiront :

Number("3.14")
Number(Math.PI)
Number(" ")
Number("")

Ceux-ci ne se convertiront pas :

Number("99 88")
Number("John")
Essayez-le Vous-Même »

Méthodes Numériques

Dans le chapitre Méthodes Numériques , vous trouverez d'autres méthodes qui peuvent être utilisées pour convertir des chaînes en nombres :

Méthode Description
Number() Renvoie un nombre, converti à partir de son argument
parseFloat() Analyse une chaîne et renvoie un nombre à virgule flottante
parseInt() Analyse une chaîne et renvoie un entier

L'Opérateur Unaire +

L' opérateur unaire + peut être utilisé pour convertir une variable en un nombre :

Exemple

let y = "5"; // y est une chaîne
let x = + y; // x est un nombre
Essayez-le Vous-Même »

Si la variable ne peut pas être convertie, elle deviendra tout de même un nombre, mais avec la valeur NaN (Not a Number) :

Exemple

let y = "John"; // y est une chaîne
let x = + y; // x est un nombre (NaN)
Essayez-le Vous-Même »


Conversion de Nombres en Chaînes

La méthode globale String() peut convertir des nombres en chaînes.

Elle peut être utilisée sur tout type de nombres, littéraux, variables ou expressions :

Exemple

String(x) // renvoie une chaîne à partir d'une variable numérique x
String(123) // renvoie une chaîne à partir d'un littéral numérique 123
String(100 + 23) // renvoie une chaîne à partir d'un nombre d'une expression
Essayez-le Vous-Même »

La méthode Number toString() fait la même chose.

Exemple

x.toString()
(123).toString()
(100 + 23).toString()
Essayez-le Vous-Même »

Plus de Méthodes

Dans le chapitre Méthodes Numériques , vous trouverez d'autres méthodes qui peuvent être utilisées pour convertir des nombres en chaînes :

Méthode Description
toExponential() Renvoie une chaîne, avec un nombre arrondi et écrit en notation exponentielle.
toFixed() Renvoie une chaîne, avec un nombre arrondi et écrit avec un nombre spécifié de décimales.
toPrecision() Renvoie une chaîne, avec un nombre écrit avec une longueur spécifiée

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) // renvoie 1404568027739

La méthode date getTime() fait la même chose.

d = new Date();
d.getTime() // renvoie 1404568027739

Conversion de Dates en Chaînes

La méthode globale String() peut convertir des dates en chaînes.

String(Date()) // renvoie "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"

La méthode Date toString() fait la même chose.

Exemple

Date().toString() // renvoie "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 qui peuvent être utilisées pour convertir des dates en chaînes :

Méthode Description
getDate() Obtenir le jour sous forme de nombre (1-31)
getDay() Obtenir le jour de la semaine sous forme de nombre (0-6)
getFullYear() Obtenir l'année à quatre chiffres (aaaa)
getHours() Obtenir l'heure (0-23)
getMilliseconds() Obtenir les millisecondes (0-999)
getMinutes() Obtenir les minutes (0-59)
getMonth() Obtenir le mois (0-11)
getSeconds() Obtenir les secondes (0-59)
getTime() Obtenir le temps (millisecondes depuis le 1er janvier 1970)

Conversion de Booléens en Nombres

La méthode globale Number() peut également convertir des booléens en nombres.

Number(false) // renvoie 0
Number(true) // renvoie 1

Conversion de Booléens en Chaînes

La méthode globale String() peut convertir des booléens en chaînes.

String(false) // renvoie "false"
String(true) // renvoie "true"

La méthode Boolean toString() fait la même chose.

false.toString() // renvoie "false"
true.toString() // renvoie "true"

Conversion de Type Automatique

Lorsque JavaScript essaie d'opérer sur un type de données "erroné", il essaie de convertir la valeur en un type "correct".

Le résultat n'est pas toujours ce que vous attendez :

5 + null // renvoie 5 car null est converti en 0
"5" + null // renvoie "5null" car null est converti en "null"
"5" + 2 // renvoie "52" car 2 est converti en "2"
"5" - 2 // renvoie 3 car "5" est converti en 5
"5" * "2" // renvoie 10 car "5" et "2" sont convertis en 5 et 2
Essayez-le Vous-Même »

Conversion Automatique de Chaînes

JavaScript appelle automatiquement la fonction toString() de la variable lorsque vous essayez de "sortir" un objet ou une variable :

document.getElementById("demo").innerHTML = myVar;

// si myVar = {name:"Fjohn"} // toString se convertit en "[object Object]"
// si myVar = [1,2,3,4] // toString se convertit en "1,2,3,4"
// si myVar = new Date() // toString se convertit en "Fri Jul 18 2014 09:08:55 GMT+0200"

Les nombres et les booléens sont également convertis, mais cela n'est pas très visible :

// si myVar = 123 // toString se convertit en "123"
// si myVar = true // toString se convertit en "true"
// si myVar = false // toString se convertit en "false"

Tableau de Conversion de Type en JavaScript

Ce tableau montre le résultat de la conversion de différentes valeurs JavaScript en Nombre, Chaîne et Booléen :

Valeur
Originale
Convertie
en Nombre
Convertie
en Chaîne
Convertie
en Booléen
Essayez-le
false 0 "false" false Essayez-le »
true 1 "true" true Essayez-le »
0 0 "0" false Essayez-le »
1 1 "1" true Essayez-le »
"0" 0 "0" true Essayez-le »
"000" 0 "000" true Essayez-le »
"1" 1 "1" true Essayez-le »
NaN NaN "NaN" false Essayez-le »
Infinity Infinity "Infinity" true Essayez-le »
-Infinity -Infinity "-Infinity" true Essayez-le »
"" 0 "" false Essayez-le »
"20" 20 "20" true Essayez-le »
"twenty" NaN "twenty" true Essayez-le »
[ ] 0 "" true Essayez-le »
[20] 20 "20" true Essayez-le »
[10,20] NaN "10,20" true Essayez-le »
["twenty"] NaN "twenty" true Essayez-le »
["ten","twenty"] NaN "ten,twenty" true Essayez-le »
function(){} NaN "function(){}" true Essayez-le »
{ } NaN "[object Object]" true Essayez-le »
null 0 "null" false Essayez-le »
undefined NaN "undefined" false Essayez-le »

Les valeurs entre guillemets indiquent des valeurs de chaîne.

Les valeurs rouges indiquent des valeurs (certaines) que les programmeurs pourraient ne pas attendre.