Chargement...

L’objet window

La boutique a une cloche. C’est le paragraphe #bell, et il commence par blank. Cette page n’a pas de formulaire.
window est l’objet de cet onglet. Le document, la largeur du viewport et tout var d’un script simple y sont accrochés. Un let ne l’est pas. La page lit quatre choses et les joint. La ligne devient same / 4 / undefined / number.

Pas le bon de thé

La page précédente refusait un invité vide et un nombre de tasses hors de 1 à 3. Sa ligne était need guest / ok. Cette page ne regarde pas #guest ni le champ #cups. Le nom cups est ici un var, pas un champ.
La question change : qu’atteint-on à travers window ?

Un seul document

document n’est pas une seconde copie. C’est window.document. La cloche trouvée par window.document est la cloche trouvée par document.

Le même document

javascript
let bell = window.document.getElementById("bell");
let also = document.getElementById("bell");
bell.textContent = window.document === document ? "same" : "no";
console.log(bell.textContent);
console.log(bell === also);

Le journal est same, puis true. Un document, une cloche.

Un var s’accroche à la fenêtre

var cups = 4 dans ce script crée window.cups. Lu, c’est le nombre 4. String n’en fait du texte que pour la cloche.

Lire un var via window

javascript
var cups = 4;
let bell = document.getElementById("bell");
bell.textContent = String(window.cups);
console.log(bell.textContent);

Le journal est 4. Le 4 est la variable, pas un champ de formulaire.

Un let reste dehors

let kettle = 1 existe. Ce n’est pas une propriété de window. window.kettle vaut undefined, et String de cela donne le mot undefined.

let n’est pas sur window

javascript
let kettle = 1;
let bell = document.getElementById("bell");
bell.textContent = String(window.kettle);
console.log(bell.textContent);
console.log(kettle);

Le journal est undefined, puis 1. La bouilloire existe. Elle ne s’accroche simplement pas à window.

La largeur est un nombre

window.innerWidth est le nombre de pixels CSS en largeur du viewport. typeof de cette valeur est "number". Ce n’est pas du texte, contrairement à value d’un champ.

La largeur est un nombre

javascript
let bell = document.getElementById("bell");
bell.textContent = typeof window.innerWidth;
console.log(bell.textContent);

Le journal est number. Le nombre de pixels change avec la fenêtre. Le type non.

Ne pas écrire l’adresse

window.location.href est l’adresse de cet onglet, et c’est un texte. La lire est sans risque. Y écrire une adresse neuve quitte la page. Aucun extrait n’écrit dans href.

Quatre lectures, pas un formulaire

Ici on ne coupe pas un nom et on ne teste pas une plage. Les quatre lectures : le document est-il le même objet, le var, le let absent, et le type de la largeur. String(undefined) est le mot undefined, pas une cloche vide.

La ligne sous la cloche

Le script est à la fin de body. Il déclare var cups = 4 et let kettle = 1, puis pousse quatre lectures : le document correspond-il, window.cups, window.kettle et typeof window.innerWidth.

Démo de la page — la cloche

html
<!DOCTYPE html>
<html>
<head>
<title>shop-bell — page</title>
</head>
<body>
<p id="bell">blank</p>
<p id="line">…</p>
<script>
var cups = 4;
let kettle = 1;
let seen = [];
seen.push(window.document === document ? "same" : "no");
seen.push(String(window.cups));
seen.push(String(window.kettle));
seen.push(typeof window.innerWidth);
document.getElementById("line").textContent = seen.join(" / ");
</script>
</body>
</html>

La ligne est same / 4 / undefined / number. Le document correspondait. Le var était visible sur window. Le let non. Le type de la largeur est number. Le mot blank a disparu. need guest / ok est la page précédente.

Au comptoir

  1. Compare window.document avec document. La cloche affiche same.
  2. Déclare var cups = 4 et lis window.cups. La cloche affiche 4.
  3. Déclare let kettle = 1 et lis window.kettle. La cloche affiche undefined. kettle lui-même reste 1.
  4. Lis typeof window.innerWidth. La cloche affiche number.
  5. Lis la ligne de la page : same / 4 / undefined / number.

Ratés au comptoir

La cloche affiche l’un de ces mots, pas un nom d’invité.

  • Attendre que window.kettle vaille 1
  • Attendre que window.cups vaille undefined
  • Traiter innerWidth comme du texte
  • Écrire dans location.href et quitter la page
  • Lire la ligne comme need guest / ok

À retenir

  • window.document et document sont le même objet
  • var cups = 4 se lit comme window.cups
  • let kettle = 1 ne crée pas window.kettle
  • typeof window.innerWidth est number
  • La ligne de la page est same / 4 / undefined / number

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
5
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut