Ο τελεστής typeof
Ο τελεστής typeof επιτρέπει τον προσδιορισμό
του τύπου μιας παραμέτρου (αριθμός, συμβολοσειρά, αντικείμενο). Ο τελεστής
επιστρέφει μια συμβολοσειρά, που περιέχει τον τύπο ('number',
'string', 'object').
Για το null
ο τελεστής επιστρέφει 'object' (αυτό είναι
ένα αναγνωρισμένο σφάλμα της γλώσσας). Για συναρτήσεις ο τελεστής
επιστρέφει 'function'. Αυτό έχει γίνει
για ευκολία, καθώς ο τύπος 'function'
δεν υπάρχει.
Σύνταξη
Ο τελεστής typeof έχει 2 σύνταξης
(και οι δύο σύνταξης λειτουργούν το ίδιο):
javascripttypeof παράμετρος;
typeof(παράμετρος);
Παράδειγμα
Ας δούμε πώς το typeof λειτουργεί με
αριθμό:
javascripttypeof 1;
Ως αποτέλεσμα του εκτελεσμένου κώδικα
θα λάβουμε την τιμή number:
javascript'number'
Παράδειγμα
Τώρα ας ορίσουμε μια συμβολοσειρά ως παράμετρο:
javascripttypeof 'str';
Αποτέλεσμα εκτέλεσης του κώδικα:
javascript'string'
Παράδειγμα
Τώρα ας ορίσουμε ως παράμετρο την boolean
τιμή true:
javascripttypeof true;
Αποτέλεσμα εκτέλεσης του κώδικα:
javascript'boolean'
Παράδειγμα
Ας δούμε ποιος τύπος
έχει η τιμή undefined:
javascripttypeof undefined;
Μετά την εκτέλεση του κώδικα
θα λάβουμε επίσης undefined:
javascript'undefined'
Παράδειγμα
Τώρα ας μάθουμε τον τύπο ενός κενού αντικειμένου:
javascripttypeof {};
Αποτέλεσμα εκτέλεσης του κώδικα:
javascript'object'
Παράδειγμα
Και τώρα ας μάθουμε τον τύπο ενός κενού πίνακα:
javascripttypeof [];
Ως αποτέλεσμα θα λάβουμε επίσης
'object':
javascript'object'
Παράδειγμα
Ας μάθουμε τον τύπο
της τιμής null:
javascripttypeof null;
Ως αποτέλεσμα θα λάβουμε επίσης
'object', που είναι
ένα αναγνωρισμένο σφάλμα της γλώσσας:
javascript'object'
Παράδειγμα
Τώρα ας προσδιορίσουμε τον τύπο μιας κενής συνάρτησης:
javascripttypeof function() {};
Μετά την εκτέλεση του κώδικα θα λάβουμε
'function',
παρά το γεγονός ότι τέτοιος τύπος
δεν υπάρχει. Αυτή η συμβολοσειρά
απαιτείται για την ευκολία του χρήστη
κατά τον προσδιορισμό μιας συνάρτησης:
javascript'function'
Παράδειγμα
Ας γράψουμε μια συνάρτηση, που θα εμφανίζει μόνο αριθμούς:
javascriptfunction printNumber(number) {
if (typeof number === 'number') {
console.log(number);
}
}
printNumber(2);
printNumber('str');
printNumber(3);