Structure lexicale 03 (Q60)
Lequel de ces noms est un nom de variable valide ?
-
5thItem
-
firstName
-
grand total
-
function
Solution
-
5thItem
-
firstName
-
grand total
-
function
Explication
Un nom de variable ne peut pas commencer par un chiffre. Donc "5thItem" n'est pas valide.
Un nom de variable ne peut pas contenir d'espace. Donc "grand total" n'est pas valide.
Enfin, un nom de variable ne peut pas être un mot-clé réservé par JavaScript. Donc "function" n'est pas valide.
Article(s) intéressant(s) :
Types, valeurs et variables 12 (Q120)
if (true) {
var x = 5;
const y = 6;
let z = 7;
}
console.log(x + y + z);
Que se passe t'il lorsque le code précédent est exécuté ?
-
Il s'affiche une erreur
ReferenceError
concernant x
.
-
Il s'affiche
18
.
-
Il s'affiche
undefined
.
-
Il s'affiche une erreur
ReferenceError
concernant y
.
Solution
-
Il s'affiche une erreur
ReferenceError
concernant x
.
-
Il s'affiche
18
.
-
Il s'affiche
undefined
.
-
Il s'affiche une erreur
ReferenceError
concernant y
.
Article(s) intéressant(s) :
Explication
L'instruction ("statement") var x = 5;
déclare une variable qui n'est pas "block-scoped".
Donc x
sera accessible depuis l'instruction ("statement")n console.log(x + y + z);
.
Sa valeur sera 5
.
L'instruction let
déclare une variable y
qui est "block-scoped".
Donc elle ne sera pas accessible depuis l'extérieur des accolades ("curly braces") de l'instruction ("statement") if
.
A l'intérieur de l'instruction console.log()
, le parseur JavaScript lancera une erreur ReferenceError
quand il essayera d'accéder à la valeur de y
, puisque y
n'existe pas dans le "scope" actuel ("global scope").
Solution
-
undefined
-
'Wild'
-
'Tabby'
-
'Athena'
Explication
Quand swap(cat);
est exécuté, l'objet
{ name: 'Athena' }
est assigné à la variable locale
feline
, qui a une portée limitée par la fonction
swap
.
Donc les variables feline
et cat
référencent le même objet.
À la 1ère ligne de la fonction, la propriété name
de feline
est changé à 'Wild'
.
Comme feline
et cat
référencent le même
objet, le name
de l'objet référencé par cat
est aussi changé à 'Wild'
.
À la ligne suivante de la fonction, un nouvel objet est assigné à la variable locale
feline
.
Les variables feline
et cat
cessent de référencer le même objet.
L'objet référencé par la variable cat
reste tel qu'il est.
C'est l'objet { name: 'Wild' }
.
Dès lors, console.log(cat.name)
affiche 'Wild'
.