Copyright © 2025 Yves MARCOUX; dernière modification de cette page : 2025-05-28.
SCI6373 Programmation documentaire
En prévision du Cours 6
Yves MARCOUX – EBSI – Université de Montréal
Votre coffre à outils jusqu’à maintenant Outil Fait quoi ? Utilisation Vu où ? + - * /+ - × ÷ n1 + n2§ 6 +Concaténation de chaînes ch1 + ch2§ 6 =Assignation de variable maVar = expression§ 7 =Assignation d’un membre chemin.d.accès = expression§ 12.1 +=,-=,*=, …Auto-réassignation d’une variable ou d’un membre maVar += expression
ouchemin.d.accès += expressionC3 ++,--Incrémentation / décrémentation de variable ou membre à valeur numérique, retourne la nouvelle valeur ++maVar
ou++chemin.d.accèsC3 ++,--Incrémentation / décrémentation de variable ou membre à valeur numérique, retourne l’ancienne valeur maVar++
ouchemin.d.accès++C3 Math.PIπ (3.14159…) Math.PI§ 5 ==Est égal à val1 == val2§ 9.1 ===Égalité stricte (sans conversion) val1 === val2C2 !=Est différent de val1 != val2§ 9.1 >Est plus grand que val1 > val2§ 9.1 >=Est plus grand que ou égal à val1 >= val2§ 9.1 <Est plus petit que val1 < val2§ 9.1 <=Est plus petit que ou égal à val1 <= val2§ 9.1 isNaN()Vérifie si la valeur d’une expression est NaNisNaN(expression)C3 ||OU booléen val1 || val2§ 9.2 &&ET booléen val1 || val2§ 9.2 !NON booléen !val§ 9.2 ? :Choix conditionnel valBool ? valSiVrai : valSiFaux§ 9.3 -Inversion de signe -n§ 9.4 +Chaîne → nombre +ch§ 9.4 .toFixed()n1→ chaîne avecn2chiffres après le pointn1 .toFixed(n2)§ 13 Math.min()Minimum Math.min(n1, n2, …)§ 10.1 Math.max()Maximum Math.max(n1, n2, …)§ 10.1 Math.sqrt()Racine carrée Math.sqrt(n)§ 10.1 Math.pow()Exposant Math.pow(n1, n2)§ 10.1 Math.abs()Valeur absolue (valeur positive) Math.abs(n)§ 12.2 Math.random()Nombre aléatoire ≥ 0 et < 1 Math.random()§ 12.2 .lengthLongueur d’une chaîne ch.length§ 10.2 .charAt()Extrait caractère en position ch.charAt(n)§ 10.2 .slice()Extrait sous-chaîne ch.slice(nDéb, nFin)§ 10.2 .toUpperCase()→ Majuscules ch.toUpperCase()§ 10.2 .toLowerCase()→ Minuscules ch.toLowerCase()§ 10.2 .indexOf()Position d’une sous-chaîne ch1.indexOf(ch2)§ 10.2 .lastIndexOf()Dernière position d’une sous-chaîne ch1.lastIndexOf(ch2)C2 .includes()Présence d’une sous-chaîne ch1.includes(ch2)§ 10.2 prompt()Affiche invite & lit une chaîne chLue = prompt(chInvite)§ 10.3 alert()Affiche message alert(chMessage)§ 10.3 .trim()Enlève blancs initiaux et finaux ch.trim()C3 .replace()Remplace sous-chaîne ch1 par ch2 ch.replace(ch1, ch2)C3 if/if…elseBlocs conditionnels if (valBool) {
blocSiVrai
} else {
blocSiFaux
};C3 console.log()Affiche à la console console.log(val1, val2, …)C3 functionDéfinition d’une FDP function nom(p1, p2, …) {
bloc
};C4 returnTermine l’exécution d’une FDP et retourne une valeur return expression;C4
Toutes les expressions données sont syntaxiquement correctes et s’exécutent sans erreur.
quel est l’argument de droite du "
S = document.body.style
." le plus à
gauche ?body, l’argument de droite du . est
toujours un simple nom de membre. Il ne peut même pas être inscrit
entre parenthèses. L’argument de gauche, quant à lui, doit être une
sous-expression dont la valeur est un pointeur à un objet (ce qui est bien le
cas ici).
document.getElementById("monInput").value = 42
document.getElementById("monInput").value = 42
document.getElementById('monP').toString()
et
document.getElementById('monP').toString()
document.getElementById('monP').toString()
innerText est membre
dans l’expression suivante :
t = document.getElementById("monP").innerText
t = document.getElementById("monP").innerText
."
dans l’expression suivante :
m = Math.min
m = Math.min
L’argument de droite du . est toujours un simple nom
de membre. Il ne peut même pas être inscrit entre parenthèses. L’argument de
gauche, quant à lui, doit être une sous-expression dont la valeur est un
pointeur à un objet (ce qui est bien le cas ici).
(i) En JS, l’environnement est un objet.
(ii) En JS, l’environnement est un pointeur à un objet.
Il faut d’abord réaliser que, dans sa formulation, la question s’appuie sur l’« abus de langage utile et répandu » présenté dans la lecture. Pour mémoire, cet abus de langage consiste à parler d’un pointeur à un objet comme s’il s’agissait de l’objet lui-même. Un membre de l’environnement ne pourrait pas « être » un objet, puisque seuls des pointeurs à un objet peuvent être stockés dans un membre de l’environnement, statutaire ou non.
Cela étant dit, l’énoncé est faux. Rappelez-vous les membres statutaires
(en environnement navigateur Web) innerWidth, name
et closed, dont les valeurs étaient respectivement numérique,
caractère et booléenne. Il s’agit de valeurs simples, et non de pointeurs à
un objet.
L’objet (pointé par) Math est intrinsèque au langage
JavaScript.
Une fois cette assignation faite, les expressions suivantes fonctionneraient-elles sans erreur ? Donneraient-elles les résultats escomptés ?
monMath = Math
monMath.PI.toFixed(5)
monMath.max(0,1)
monMath pointe au même objet que Math; les deux
sont donc synonymes. Les deux expressions fonctionneraient sans problème et
donneraient les résultats escomptés, soit "3.14159" et
1, respectivement.