Vous êtes sur la page 1sur 2

Les valeurs appartenant aux 6 premiers types de valeurs ( string number boolean null

underfined symbol) sont appelées des valeurs primitives. Les valeurs appartenant au type
object sont des objets.

Le JavaScript possède deux grandes catégories de types de données : les valeurs


primitives et les objets.
On appelle valeur primitive en JavaScript une valeur qui n’est pas un objet et qui ne
peut pas être modifiée.

si on stocke une chaine de caractères dans une variable, par exemple, on va tout à fait
pouvoir écraser cette chaine pour stocker une autre valeur. Pour autant, la chaine de
caractères stockée n’aura pas été modifiée : elle aura été écrasée et c’est bien une nouvelle
valeur complètement différente qui va être stockée dans notre variable dans ce cas.Cela va
être différent pour les objets : on va tout à fait pouvoir modifier les membres d’un objet.

Autre différence notable entre valeurs primitives et objets : les valeurs primitives sont
passées et comparées par valeur tandis que les objets sont passés et comparés par
référence.

Si deux valeurs primitives ont la même valeur, elles vont être considérées égales. Si deux
objets définissent les mêmes propriétés et méthodes avec les mêmes valeurs, ils ne vont pas
être égaux. Pour que deux objets soient égaux, il faut que les deux fassent référence aux
mêmes membres.

//Deux valeurs primitives


let ch1 = 'Une chaine de caractères';
let ch2 = 'Une chaine de caractères';

//true car les deux valeurs (et les types) sont égaux
document.getElementById('p1').innerHTML = 'ch1 == ch2 ? : ' +
(ch1 === ch2);

//Trois objets
let ob1 = {prenom : 'Pierre'};
let obj2 = {prenom : 'Pierre'};
let ob3 = objet1;

//false car les deux objets ne font pas référence aux mêmes
membres
document.getElementById('p2').innerHTML = 'ob1 === ob2 ? : '
+ (ob1 === ob2);

//true car les deux objets font référence aux mêmes membres
document.getElementById('p3').innerHTML = 'ob1 === ob3 ? : '
+ (ob1 === ob3);

Chaque type de valeur primitive, à l’exception de null et de undfenied, possède un


équivalent objet prédéfini en JavaScript.
Ainsi, le JavaScript possède quatre objets natifs String, Number, Boolean et Symbol
qui contiennent des propriétés et des méthodes.
//On définit une valeur primitive
let ch1 = 'Une chaine de caractères';

//On appelle le constructeur String() pour créer un objet


String
let ch2 = new String('Une chaine de caractères');

alert('Type de ch1 : ' + typeof(ch1) + '\nType de ch2 : ' +


typeof(ch2));
=> type of ch1 string
type of ch2 object (contient un objet String.)

Valeur primitive ou objet : que préférer ?


let ch2 = new String('Une chaine de caractères');

document.getElementById('p1').innerHTML = ch2.length;

document.getElementById('p2').innerHTML = ch2.toUpperCase();

document.getElementById('p3').innerHTML = ch2;

les valeurs primitives ont été mises en place par le JavaScript justement pour nous
éviter d’avoir à créer des objets.
En effet, vous devez savoir que déclarer une valeur primitive offre de bien meilleurs
résultats en termes de performances que de créer un nouvel objet et c’est la raison
principale de l’existence de ces valeurs.
il faut savoir que lorsqu’on tente d’accéder à une propriété ou à une méthode définies dans
les constructeurs relatifs depuis une valeur primitive, le JavaScript va convertir cette valeur
en un objet relatif au type de la valeur primitive (un objet String pour une chaine de
caractères, Number pour un nombre, etc.).

Vous aimerez peut-être aussi