Ποια είναι η διαφορά μεταξύ ==
και ===
στη JavaScript; Έχω δει επίσης τους τελεστές !=
και !==
. Υπάρχουν κι άλλοι τέτοιοι τελεστές;
Ρίξτε μια ματιά εδώ: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html
Τα 3 σύμβολα ισότητας σημαίνουν "ισότητα χωρίς εξαναγκασμό τύπου". Χρησιμοποιώντας τα τριπλά ίσα, οι τιμές πρέπει να είναι ίσες και ως προς τον τύπο.
0 == false // true
0 === false // false, because they are of a different type
1 == "1" // true, automatic type conversion for value only
1 === "1" // false, because they are of a different type
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
Οι τελεστές ===
και !==
είναι αυστηροί τελεστές σύγκρισης:
Η JavaScript έχει τόσο αυστηρούς όσο και σύγκριση ισότητας με μετατροπή τύπου. Για την
αυστηρή
ισότητα τα αντικείμενα που είναι πρέπει να έχουν τον ίδιο τύπο και: >,
- Δύο συμβολοσειρές είναι αυστηρά ίσες όταν έχουν την ίδια ακολουθία χαρακτήρες, το ίδιο μήκος και το ίδιο μήκος. χαρακτήρες σε αντίστοιχες θέσεις.
- Δύο αριθμοί είναι αυστηρά ίσοι όταν είναι αριθμητικά ίσοι (έχουν την ίδια αριθμητική τιμή). Το
NaN
δεν είναι ίσος με οτιδήποτε, συμπεριλαμβανομένου τουNaN
. Τα θετικά και τα αρνητικά μηδενικά είναι ίσα. μεταξύ τους.- Δύο τελεστές Boolean είναι αυστηρά ίσοι αν και οι δύο είναι αληθείς ή και οι δύο είναι ψευδείς.
- Δύο αντικείμενα είναι αυστηρά ίσα εάν αναφέρονται στο ίδιο
Αντικείμενο
.- Οι τύποι
Null
καιUndefined
είναι==
(αλλά όχι===
). [Δηλαδή (Null==Undefined
) είναιαλήθεια
αλλά (Null===Undefined
) είναιλάθος
]