14.2 Condition, comparaison |
See You Why? |
Dans notre section précédente, nous n'avons vérifié qu'un seul type de comparaison simple : deux valeurs étaient-elles égales entre elles... et signaler la différence entre les signes = d'affectation et == de comparaison.
Sans vouloir être exhaustif, nous aimerions signaler qu'il existe bien d'autres comparaisons possibles, à savoir :
en français | en JS |
différent de..., pas égal à... | != |
strictement plus petit que... (inférieur à...) | < |
strictement plus grand que... (supérieur à...) | > |
plus petit ou égal à... | <= |
plus grand ou égal à... | >= |
égal à et de même type que... | === |
différent de valeur ou de type que... | !== |
Attention, JS ne connait pas le signe '<>' (plus petit ou plus grand) utilisé dans de nombreux langages informatiques... "Est différent de... " se note '!=' (pas égal) en JS.
On pourrait donc créer des variables booléennes de la façon suivante :
majeur = (age>=18);
pensionne = (age>65);
Toujours dans les conditions uniques à vérifier, il existe la négation de la comparaison vue précédemment, à savoir "est différent de..." ou "n'est pas égal à..." qui en JS se notera " !=", soit un point d'exclamation immédiatement suivi d'un simple signe = et qui exprime la négation de la condition vue dans la section précédente "est égal à...". Cette condition sera vraie si les éléments comparés ne sont pas égaux.
Il existe aussi au niveau des comparaisons une autre comparaison qui marque une non égalité entre deux éléments, à savoir "est strictement plus petit que..." ou "est strictement inférieur à..." qui en JS se notera " <", placé à gauche du 'w' sur un clavier belge. Cette condition sera vraie si le premier élément est plus petit que le second de la comparaison, sans lui être égal.
C'est le sens du 'strictement'.
Il existe encore au niveau des comparaisons une autre comparaison qui marque une non égalité entre deux éléments, à savoir "est strictement plus grand que..." ou "est strictement supérieur à..." qui en JS se notera " >", placé à gauche du 'w' sur un clavier belge. Cette condition sera vraie si le premier élément est plus grand que le second de la comparaison, sans lui être égal. Ce n'est donc pas la négation de la précédente, puisque dans aucun des deux cas, on n'accepte qu'il y ait égalité entre les 2 éléments comparés.
C'est le sens du 'strictement'.
Il existe aussi au niveau des comparaisons une autre comparaison qui marque une différence entre deux éléments, à savoir "est plus petit ou égal à..." ou "est inférieur à..." qui en JS se notera " <=". Cette condition sera vraie si le premier élément est plus petit ou égal au second de la comparaison, mais ici en pouvant lui être égal.
C'est donc ici la négation de la condition ">".
Il existe encore et enfin au niveau des comparaisons une autre comparaison qui marque une différence entre deux éléments, à savoir "est plus grand ou égal à..." ou "est supérieur à..." qui en JS se notera " >=". Cette condition sera vraie si le premier élément est plus grand ou égal au second de la comparaison, mais ici en pouvant lui être égal.
C'est donc ici la négation de la condition "<".
Tout d'abord, attention à ce que l'on appelle "caractère". Il s'agit d'un constituant de base de la chaîne de caractères ; je sais, ce n'est pas très clair, mais c'est un peu comme si je vous disais qu'une lettre est un constituant de base d'un mot, qu'un chiffre est un élément constituant d'un nombre.
Dans une chaine de caractères on trouve aussi des lettres (en capitales et en bas de casse [évitez les expressions majuscules et minuscules qui sont incorrectes - voir ici]), des espaces ordinaires, insécables ou fines [voir ici], des signes de ponctuation, des caractères spéciaux (dont les lettres accentuées), etc.
Parler d'un 'caractère', c'est utiliser le terme informatique adéquat qui désigne n'importe quel symbole pouvant apparaître dans du texte, que ce soit des lettres, des chiffres, ou n'importe quel autre symbole tel que la ponctuation par exemple.
Ensuite, rappelons-nous que JS n'est pas très typé... c'est-à-dire que le type d'une variable n'est pas fixe...
ainsi, JS acceptera des instructions telles que var c = "4" + 5
et affectera la valeur 45 à ce qui est une somme ou une concaténation d'une valeur alphanumérique avec une valeur numérique...
À condition de ne pas perdre de vue ces deux remarques préalables, on retiendra qu'en principe un caractère est stocké sur un byte (ou octet) et que le classement des caractères se fait en suivant les codes ASCII des caractères... qu'ouïs-je, 'aski' ? quasi OK pour la prononciation, mais ASCII signifie American Standard Code of Information Interchange, c-à-d une norme de codage de caractères en informatique ancienne et connue pour son influence incontournable sur les codages de caractères qui lui ont succédé. Elle était la plus largement compatible pour ce qui est des caractères latins non accentués. Initialement le code ASCII se codait sur 7 bits, ce qui donnait des valeurs de 0 à 127. Quelques explications complémentaires sont données ici (code des caractères en html) et ici (système décimal, binaire et hexadécimal) pour ceux qui s'y intéressent.
Une représentation rapide des 128 caractères codés sur 7 bits et basée sur la notation en base 16.
PDF : fr en
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
⇐ 2e chiffre hexadécimal |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
|
NUL
|
SOH
|
STX
|
ETX
|
EOT
|
ENQ
|
ACK
|
BEL
|
BS
|
HT
|
LF
|
VT
|
FF
|
CR
|
SO
|
SI
|
|
1
|
DLE
|
DC1
|
DC2
|
DC3
|
DC4
|
NAK
|
SYN
|
ETB
|
CAN
|
EM
|
SUB
|
ESC
|
FS
|
GS
|
RS
|
US
|
|
2
|
SP
|
!
|
"
|
#
|
$
|
%
|
&
|
'
|
(
|
)
|
*
|
+
|
,
|
-
|
.
|
/
|
|
3
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
:
|
;
|
<
|
=
|
>
|
?
|
|
4
|
@
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
|
5
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
[
|
\
|
]
|
^
|
_
|
|
6
|
`
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
h
|
i
|
j
|
k
|
l
|
m
|
n
|
o
|
|
7
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
{
|
|
|
}
|
~
|
DEL
|
|
⇑ premier chiffre héxadécimal |
Observons ce tableau :
C'est pour cette raison et parce que les informaticiens travaillent en octets ou bytes, qu'ils ont créé un code ASCII étendu qui peut différer selon les langues utilisées en utilisant le 8e bit de l'octet. Les 128 nouveaux caractères disponibles permettaient l'encodage de caractères particuliers : les principaux caractères accentués, le symbole 'euro', l'espace insécable, les chevrons de la langue française, les ligatures Œ, œ, Æ et æ, et autres ont donc trouvé leur place.
Pour ceux qui s'intéressent au codage de caractères spéciaux en HTML et en JavaScript, un coup d'œil sur notre page "Caractères spéciaux, étrangers, unicode, typographiques et autres API" peut s'avérer intéressant.
On vous a déjà spécifié à plusieurs reprises que JS est sensible à la casse, donc JS ne considère pas un "a" égal à un "A". Des méthodes applicables aux chaines de caractères ont été abordées en chapitre 5, séquence "Manipulation de chaines". Nous conseillerons donc, s'il vaut vérifier l'égalité de deux chaînes, sans avoir l'exigence de la distinction des capitales et bas de casse, de capitaliser les deux chaines à comparer :
if (reponse.toUpperCase() == username.toUpperCase()) {...}
Vot res.
voir suite >>>
voir suite >>>
voir suite >>>