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/02-first-steps/09-comparison/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
@@ -162,8 +162,8 @@ Pour un contrôle d'égalité non strict `==`
162
162
alert( null == undefined ); // true
163
163
```
164
164
165
-
Pour les maths et autres comparaisons `< > <= >=`
166
-
: Les valeurs `null/undefined` sont converties en un nombre : `null` devient `0`, alors qu'`undefined` devient `NaN`.
165
+
Pour les maths et autres comparaisons `<`, `>`, `<=`, `>=`
166
+
: Les valeurs `null`/`undefined` sont converties en un nombre : `null` devient `0`, alors qu'`undefined` devient `NaN`.
167
167
168
168
Voyons maintenant des choses amusantes qui se produisent lorsque nous appliquons ces règles. Et, ce qui est plus important, comment ne pas tomber dans un piège avec ces caractéristiques.
Ouais, mathématiquement c'est étrange. Le dernier résultat indique que "`null` est supérieur ou égal à zéro". Alors que l'une des comparaisons au dessus devrait être correcte, mais les deux sont fausses.
181
181
182
-
La raison est qu'une vérification d'égalité `==` et les comparaisons> `<> >= <=` fonctionnent différemment. Les comparaisons convertissent `null` en un nombre, donc le traitent comme `0`. C'est pourquoi (3) `null >= 0` est vrai et (1) `null > 0` est faux.
182
+
La raison est qu'une vérification d'égalité (`==`) et les comparaisons (`<`, `>`, `<=`, `>=`) fonctionnent différemment. Les comparaisons convertissent `null` en un nombre, donc le traitent comme `0`. C'est pourquoi (3) `null >= 0` est vrai et (1) `null > 0` est faux.
183
183
184
184
D’un autre côté, la vérification de l’égalité `==` pour `undefined` et `null` est définie de telle sorte que, sans aucune conversion, ils sont égaux et ne correspondent à rien d’autre. C'est pourquoi (2) `null == 0` est faux.
185
185
@@ -188,8 +188,8 @@ D’un autre côté, la vérification de l’égalité `==` pour `undefined` et
188
188
La valeur `undefined` ne doit pas du tout participer aux comparaisons :
189
189
190
190
```js run
191
-
alert( undefined>0 ); // false (1)
192
-
alert( undefined<0 ); // false (2)
191
+
alert( undefined>0 ); // false (1)
192
+
alert( undefined<0 ); // false (2)
193
193
alert( undefined==0 ); // false (3)
194
194
```
195
195
@@ -204,14 +204,14 @@ Nous avons ces résultats parce que :
204
204
205
205
Pourquoi avons-nous observé ces exemples? Devrions-nous nous souvenir de ces particularités tout le temps ? Eh bien pas vraiment. En fait, ces notions délicates deviennent progressivement familières au fil du temps, mais il existe un moyen solide d’éviter tout problème avec elles.
206
206
207
-
Il suffit de traiter toute comparaison avec `undefined/null` (à l'exception de la stricte égalité `===`) avec un soin exceptionnel.
207
+
Il suffit de traiter toute comparaison avec `null`/`undefined` (à l'exception de la stricte égalité `===`) avec un soin exceptionnel.
208
208
209
-
N'utilisez pas de comparaisons `=> > < <=` avec une variable qui peut être `null/undefined`, sauf si vous êtes vraiment sûr de ce que vous faites. Si une variable peut avoir de telles valeurs, vérifiez-les séparément.
209
+
N'utilisez pas de comparaisons `=>`, `>`, `<`, `<=` avec une variable qui peut être `null`/`undefined`, sauf si vous êtes vraiment sûr de ce que vous faites. Si une variable peut avoir de telles valeurs, vérifiez-les séparément.
210
210
211
211
## Résumé
212
212
213
213
- Les opérateurs de comparaison renvoient une valeur logique.
214
214
- Les chaînes de caractères sont comparées lettre par lettre dans l'ordre "dictionnaire".
215
215
- Lorsque des valeurs de différents types sont comparées, elles sont converties en nombres (à l'exclusion d'un contrôle d'égalité strict).
216
-
- Les valeurs `null` et `undefined` sont égales `==` et ne correspondent à aucune autre valeur.
217
-
- Soyez prudent lorsque vous utilisez des comparaisons telles que `>` ou `<` avec des variables pouvant parfois être `null/undefined`. Faire une vérification séparée pour `null/undefined` est une bonne idée.
216
+
- Les valeurs `null` et `undefined` sont égales (`==`) et ne correspondent à aucune autre valeur.
217
+
- Soyez prudent lorsque vous utilisez des comparaisons telles que `>` ou `<` avec des variables pouvant parfois être `null`/`undefined`. Faire une vérification séparée pour `null`/`undefined` est une bonne idée.
0 commit comments