You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/04-var/article.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ D'un autre côté, il est important de comprendre les différences lors de la mi
30
30
31
31
Les variables, déclarées avec `var`, ont une portée fonction ou globale. Ils sont visibles à travers des blocs.
32
32
33
-
Par exemple:
33
+
Par exemple:
34
34
35
35
```js run
36
36
if (true) {
@@ -44,7 +44,7 @@ alert(test); // vrai, la variable existe après if
44
44
45
45
Comme `var` ignore les blocs de code, nous avons une variable globale `test`.
46
46
47
-
Si nous aurions utilisé `let test` au lieu de `var test`, la variable aurait seulement été visible à l'intérieur de `if`:
47
+
Si nous aurions utilisé `let test` au lieu de `var test`, la variable aurait seulement été visible à l'intérieur de `if`:
48
48
49
49
```js run
50
50
if (true) {
@@ -56,7 +56,7 @@ alert(test); // ReferenceError: test is not defined
56
56
*/!*
57
57
```
58
58
59
-
Même principe pour les boucles: `var` ne peut pas être locale pour les blocs ni les boucles :
59
+
Même principe pour les boucles: `var` ne peut pas être locale pour les blocs ni les boucles :
60
60
61
61
```js
62
62
for (var i =0; i <10; i++) {
@@ -113,7 +113,7 @@ Les déclarations `var` sont traitées quand la fonction commence (ou quand le s
113
113
114
114
En d'autres mots, les variables `var` sont définies au début de la fonction, peu importe où la définition se retrouve (présumant que la définition n'est pas dans une fonction imbriquée).
115
115
116
-
Alors ce code:
116
+
Alors ce code:
117
117
118
118
```js run
119
119
functionsayHi() {
@@ -128,7 +128,7 @@ function sayHi() {
128
128
sayHi();
129
129
```
130
130
131
-
...est techniquement identique à ceci (nous avons simplement bougé `var phrase` du code juste avant):
131
+
...est techniquement identique à ceci (nous avons simplement bougé `var phrase` du code juste avant):
132
132
133
133
```js run
134
134
functionsayHi() {
@@ -143,7 +143,7 @@ function sayHi() {
143
143
sayHi();
144
144
```
145
145
146
-
...ou même ceci (souvenez-vous, les blocs de code sont ignorés):
146
+
...ou même ceci (souvenez-vous, les blocs de code sont ignorés):
147
147
148
148
```js run
149
149
functionsayHi() {
@@ -162,15 +162,15 @@ sayHi();
162
162
163
163
Certains nomment ce comportement "hoisting" (hisser) parce que toutes les `var` sont "hoisted" (hissées) jusqu'en haut de la fonction.
164
164
165
-
Alors dans l'exemple au dessus, la branche `if (false)`n'est jamais exécutée, mais ce n'est pas grave. La `var`à l'intérieur de cette branche est traitée au début de la fonction, alors au moment `(*)`, la variable existe.
165
+
Ainsi, dans l'exemple ci-dessus, la branche `if (false)`ne s'exécute jamais, mais cela n'a pas d'importance. La `var`qu'elle contient est traitée au début de la fonction, donc au moment de `(*)` la variable existe.
166
166
167
167
**Les déclarations sont hissées, mais les affectations ne le sont pas.**
168
168
169
169
Cela est mieux démontré avec un exemple :
170
170
171
171
```js run
172
172
functionsayHi() {
173
-
alert(phrase);
173
+
alert(phrase);
174
174
175
175
*!*
176
176
var phrase ="Hello";
@@ -277,7 +277,7 @@ Dans tous les cas ci-dessus, nous déclarons une fonction expression et l'exécu
277
277
278
278
## Résumé
279
279
280
-
Il y a deux différences majeures entre `var` et `let/const`:
280
+
Il y a deux différences majeures entre `var` et `let`/`const`:
281
281
282
282
1. Les variables `var` n'ont pas de portée de bloc, leur visibilité est étendue à la fonction actuelle, ou globale, si elle est déclarée hors fonction.
283
283
2. Les déclarations `var` sont traitées au début de la fonction (ou au début du script pour le cas global).
0 commit comments