Académique Documents
Professionnel Documents
Culture Documents
underfined symbol) sont appelées des valeurs primitives. Les valeurs appartenant au type
object sont des objets.
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.
//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);
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.).