Appearance
Les objets sont des blocs de données composés de propriétés. Chaque propriété (property) a une valeur (value). Ces valeurs peuvent être des nombres (Number), des chaînes de caractères (String), des booleens (Boolean), des tableaux (Array), d'autres objets (Object) ou même des fonctions (on parle alors de méthodes). Les tableaux, dont nous avons parlé sont, en réalité, aussi des objets.
js
const etudiant = {
nom: "Smith",
prenom: "John",
option: "BPEINT",
age: 20,
year: 3,
isValidated: true
work: {
theme: "Culture",
technique: "Acrylic"
},
actions: {
drippin() {
},
sliding: function() {
}
},
couleurs: [
{
nom: "Rouge",
hex: "#FF0000"
}
]
}Valeurs primitives
js
let nom1 = "Marc"; // Marc
let nom2 = nom1; // Marc
nom1 = "Lucie";
console.log(nom1); // Lucie
console.log(nom2); // MarcValeurs de références
Les objets, les tableaux, etc.. sont des valeurs de référence. Cela veut dire que si je copie un objet (dans une autre variable), je crée une référence, pas une copie pure et simple, détachée de sa source.
Petit exemple:
js
let student1 = {
nom: "Marc",
age: 19
};
let student2 = student1; // Je fais ici une référence à mon objet js
student1.name = "Lucie";
console.log(student1.name); // Lucie
console.log(student2.name); // LucieSous le capot
Si l'on utilise la dot notation ou la bracket notation sur des valeurs primitives, elles vont être, sous le capot, transformées en objets et on va avoir accès à toute une série de méthodes associées (aux chaines de caractères, aux tableaux..). C'est ici que l'expression "sous le capot" prend tout son sens. C'est vraiment comme ouvrir une boite qui donne accès à un niveau supérieur (ou inférieur) que l'on peut ensuite explorer.
js
let str = "Nicolas";
// Convertit la chaîne de caractères en tableau (de lettres)
let chars = str.split('');
// Mélange le tableau
chars.sort(() => Math.random() - 0.5);
// Convertit le tableau en Chaîne de caractère
let mixedStr = chars.join('');
// Affiche le résultat
console.log(mixedStr);this
this représente une référence à l'objet dans lequel il est exécuté. C'est une référence à l'objet qui l'appelle dans une fonction normale. Et une référence à l'objet englobant dans le cas de fonctions fléchées.
On peut accéder à une propriété d'un objet en utilisant soit la bracket notation, soit la dot notation.
Si j'ai:
js
const school = {
name: "ENSAV La Cambre",
options: 20,
population: 750
}Je peux faire:
js
console.log(school.options); // 17
// ou
console.log(school["options"]); // 17Ajouter une propriété à un objet
js
shool.init = "1927";Pour afficher les clés d'un objet:
js
console.log(Object.keys(window));Pour les valeurs:
js
console.log(Object.values(window));