Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Η typeof είναι ένας τελεστής στην JavaScript που χρησιμοποιείται για να επιστρέψει τον τύπο δεδομένων μιας μεταβλητής ή ενός αντικειμένου. Είναι ιδιαίτερα χρήσιμος για να ελέγξετε τον τύπο μιας μεταβλητής πριν να εκτελέσετε συγκεκριμένες ενέργειες πάνω της.

Η σύνταξη του typeof είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
typeof value
typeof value
typeof value

όπου value είναι η μεταβλητή ή το αντικείμενο για το οποίο θέλουμε να βρούμε τον τύπο.

Οι διαφορετικοί τύποι δεδομένων που μπορούν να επιστραφούν από το typeof είναι:

  • "undefined": Όταν η μεταβλητή δεν έχει ανατεθεί τιμή ή δεν υπάρχει.
  • "boolean": Όταν η μεταβλητή περιέχει μια λογική τιμή true ή false.
  • "number": Όταν η μεταβλητή περιέχει έναν αριθμό.
  • "string": Όταν η μεταβλητή περιέχει ένα κείμενο (string).
  • "object": Όταν η μεταβλητή περιέχει ένα αντικείμενο, έναν πίνακα ή έναν null.
  • "function": Όταν η μεταβλητή περιέχει μια συνάρτηση (function).

Ας δούμε μερικά παραδείγματα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const x = 5;
console.log(typeof x); // "number"
const y = "Hello";
console.log(typeof y); // "string"
const z = true;
console.log(typeof z); // "boolean"
const person = { name: "John", age: 30 };
console.log(typeof person); // "object"
const func = function() {};
console.log(typeof func); // "function"
const nothing;
console.log(typeof nothing); // "undefined"
const x = 5; console.log(typeof x); // "number" const y = "Hello"; console.log(typeof y); // "string" const z = true; console.log(typeof z); // "boolean" const person = { name: "John", age: 30 }; console.log(typeof person); // "object" const func = function() {}; console.log(typeof func); // "function" const nothing; console.log(typeof nothing); // "undefined"
const x = 5;
console.log(typeof x); // "number"

const y = "Hello";
console.log(typeof y); // "string"

const z = true;
console.log(typeof z); // "boolean"

const person = { name: "John", age: 30 };
console.log(typeof person); // "object"

const func = function() {};
console.log(typeof func); // "function"

const nothing;
console.log(typeof nothing); // "undefined"

Στο παράδειγμα αυτό, το typeof χρησιμοποιείται για να ελέγξει τον τύπο της κάθε μεταβλητής και εμφανίζει τον αντίστοιχο τύπο δεδομένων στην κονσόλα.

Σωστά! Στην JavaScript υπάρχουν 5 διαφορετικοί τύποι δεδομένων που μπορούν να περιέχουν τιμές:

  1. Συμβολοσειρά (string)
  2. Αριθμός (number)
  3. Λογική τιμή (boolean)
  4. Αντικείμενο (object)
  5. Συνάρτηση (function)

Επίσης, υπάρχουν 6 τύποι αντικειμένων (object) στην JavaScript:

  1. Αντικείμενο (Object)
  2. Ημερομηνία (Date)
  3. Πίνακας (Array)
  4. Συμβολοσειρά (String)
  5. Αριθμός (Number)
  6. Λογική τιμή (Boolean)

Επιπλέον, υπάρχουν δύο τύποι δεδομένων που δεν μπορούν να περιέχουν τιμές:

  1. null
  2. undefined

Αυτοί οι τύποι είναι σημαντικοί για να κατανοήσετε την κατανομή των τιμών στην JavaScript και να κατανοήσετε τη σημασία των τύπων δεδομένων κατά την ανάπτυξη των προγραμμάτων σας.

[adinserter block=”2″]

Μπορείτε να χρησιμοποιήσετε τον τελεστή typeof για να βρείτε τον τύπο δεδομένων μιας μεταβλητής στην JavaScript.

Όπως δείχνετε στο παράδειγμά σας:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
typeof "John" // Επιστρέφει "string"
typeof 3.14 // Επιστρέφει "number"
typeof NaN // Επιστρέφει "number"
typeof false // Επιστρέφει "boolean"
typeof [1,2,3,4] // Επιστρέφει "object"
typeof {name:'John', age:34} // Επιστρέφει "object"
typeof new Date() // Επιστρέφει "object"
typeof function () {} // Επιστρέφει "function"
typeof myCar // Επιστρέφει "undefined"
typeof null // Επιστρέφει "object"
typeof "John" // Επιστρέφει "string" typeof 3.14 // Επιστρέφει "number" typeof NaN // Επιστρέφει "number" typeof false // Επιστρέφει "boolean" typeof [1,2,3,4] // Επιστρέφει "object" typeof {name:'John', age:34} // Επιστρέφει "object" typeof new Date() // Επιστρέφει "object" typeof function () {} // Επιστρέφει "function" typeof myCar // Επιστρέφει "undefined" typeof null // Επιστρέφει "object"
typeof "John"                 // Επιστρέφει "string"
typeof 3.14                   // Επιστρέφει "number"
typeof NaN                    // Επιστρέφει "number"
typeof false                  // Επιστρέφει "boolean"
typeof [1,2,3,4]              // Επιστρέφει "object"
typeof {name:'John', age:34}  // Επιστρέφει "object"
typeof new Date()             // Επιστρέφει "object"
typeof function () {}         // Επιστρέφει "function"
typeof myCar                  // Επιστρέφει "undefined"
typeof null                   // Επιστρέφει "object"

Η typeof είναι ένα χρήσιμο εργαλείο για να εξετάσετε τον τύπο δεδομένων μιας μεταβλητής και να αντιμετωπίσετε τον κώδικά σας δυναμικά, ανάλογα με τον τύπο δεδομένων που έχει η μεταβλητή.

Σωστά! Τα πρωτογενή δεδομένα είναι μονοαπλά δεδομένα χωρίς πρόσθετες ιδιότητες και μεθόδους. Στην JavaScript, υπάρχουν πέντε τύποι δεδομένων που θεωρούνται πρωτογενή:

  1. Συμβολοσειρά (string)
  2. Αριθμός (number)
  3. Λογική τιμή (boolean)
  4. Κενό (null)
  5. Απροσδιόριστο (undefined)

Αυτά τα πρωτογενή δεδομένα είναι απλές τιμές και όχι αντικείμενα. Συνεπώς, δεν έχουν πρόσθετες ιδιότητες ή μεθόδους. Αντίθετα, όταν χρησιμοποιούμε αντικείμενα, όπως πίνακες ή συναρτήσεις, μπορούμε να έχουμε πρόσβαση σε διάφορες ιδιότητες και μεθόδους που ανήκουν στο αντικείμενο.

Η διάκριση ανάμεσα σε πρωτογενή και αντικειμενοστραφή δεδομένα είναι σημαντική καθώς αντικειμενοστραφή δεδομένα μπορούν να επεξεργαστούν με μεγαλύτερη πολυπλοκότητα, ενώ τα πρωτογενή δεδομένα είναι απλά και άμεσα προσβάσιμα.

Παρακάτω έχουμε ένα παράδειγμα χρήσης του typeof για να επιστρέψουμε τον τύπο δεδομένων για μερικές μεταβλητές που περιέχουν πρωτογενή δεδομένα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let name = "John";
let age = 30;
let isMarried = false;
let height; // undefined
let salary = null;
console.log(typeof name); // "string"
console.log(typeof age); // "number"
console.log(typeof isMarried); // "boolean"
console.log(typeof height); // "undefined"
console.log(typeof salary); // "object" (Προσοχή: Το null θεωρείται αντικείμενο)
let name = "John"; let age = 30; let isMarried = false; let height; // undefined let salary = null; console.log(typeof name); // "string" console.log(typeof age); // "number" console.log(typeof isMarried); // "boolean" console.log(typeof height); // "undefined" console.log(typeof salary); // "object" (Προσοχή: Το null θεωρείται αντικείμενο)
let name = "John";
let age = 30;
let isMarried = false;
let height; // undefined
let salary = null;

console.log(typeof name);      // "string"
console.log(typeof age);       // "number"
console.log(typeof isMarried); // "boolean"
console.log(typeof height);    // "undefined"
console.log(typeof salary);    // "object" (Προσοχή: Το null θεωρείται αντικείμενο)

Εδώ βλέπουμε τη χρήση του typeof για να εξετάσουμε τον τύπο των πρωτογενών μεταβλητών μας. Η τιμή του typeof επιστρέφεται ως συμβολοσειρά και μας δείχνει τον τύπο δεδομένων για κάθε μεταβλητή. Όπως βλέπουμε, η μεταβλητή salary που έχει τιμή null επιστρέφει "object", παρόλο που είναι πρωτογενές δεδομένο. Αυτό είναι ένα κοινό χαρακτηριστικό στην JavaScript και πρέπει να το λάβετε υπόψη σας κατά την αξιολόγηση των τύπων δεδομένων.

Το typeof μπορεί να επιστρέψει δύο σύνθετους τύπους: “function” και “object”.

Όταν χρησιμοποιείτε το typeof για να αξιολογήσετε μια συνάρτηση, θα επιστρέψει τον τύπο “function”. Εδώ είναι ένα παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function greet() {
console.log("Hello!");
}
console.log(typeof greet); // "function"
function greet() { console.log("Hello!"); } console.log(typeof greet); // "function"
function greet() {
  console.log("Hello!");
}

console.log(typeof greet); // "function"

Ωστόσο, πρέπει να προσέχετε το γεγονός ότι το typeof επιστρέφει επίσης τον τύπο “object” για αντικείμενα, πίνακες και την τιμή null. Εδώ έχουμε ένα παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let obj = { name: "John" };
let arr = [1, 2, 3];
let nullValue = null;
console.log(typeof obj); // "object"
console.log(typeof arr); // "object"
console.log(typeof nullValue); // "object"
let obj = { name: "John" }; let arr = [1, 2, 3]; let nullValue = null; console.log(typeof obj); // "object" console.log(typeof arr); // "object" console.log(typeof nullValue); // "object"
let obj = { name: "John" };
let arr = [1, 2, 3];
let nullValue = null;

console.log(typeof obj);        // "object"
console.log(typeof arr);        // "object"
console.log(typeof nullValue);  // "object"

Για να διαχωρίσουμε μεταξύ αντικειμένων και πινάκων από συναρτήσεις και να αποφύγουμε την επιστροφή “object” για την τιμή null, μπορούμε να χρησιμοποιήσουμε επιπλέον ελέγχους, όπως για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function isFunction(value) {
return typeof value === "function";
}
function isObject(value) {
return value !== null && typeof value === "object";
}
let obj = { name: "John" };
let greetFunction = function() {
console.log("Hello!");
};
let nullValue = null;
console.log(isFunction(greetFunction)); // true
console.log(isObject(obj)); // true
console.log(isObject(greetFunction)); // false
console.log(isObject(nullValue)); // false
function isFunction(value) { return typeof value === "function"; } function isObject(value) { return value !== null && typeof value === "object"; } let obj = { name: "John" }; let greetFunction = function() { console.log("Hello!"); }; let nullValue = null; console.log(isFunction(greetFunction)); // true console.log(isObject(obj)); // true console.log(isObject(greetFunction)); // false console.log(isObject(nullValue)); // false
function isFunction(value) {
  return typeof value === "function";
}

function isObject(value) {
  return value !== null && typeof value === "object";
}

let obj = { name: "John" };
let greetFunction = function() {
  console.log("Hello!");
};
let nullValue = null;

console.log(isFunction(greetFunction)); // true
console.log(isObject(obj));             // true
console.log(isObject(greetFunction));   // false
console.log(isObject(nullValue));       // false

Με τις παραπάνω συναρτήσεις, μπορούμε να διαχωρίσουμε συναρτήσεις από αντικείμενα και να αποφύγουμε το λάθος επιστροφής “object” για την τιμή null.

Το typeof είναι ένας τελεστής (operator) και όχι μια μεταβλητή. Οι τελεστές (όπως + – * /) πράγματι δεν έχουν καμία δική τους τύπο δεδομένων.

[adinserter block=”3″]

Ωστόσο, το typeof πάντα επιστρέφει μια συμβολοσειρά (string) που περιέχει τον τύπο του τελεστή που χρησιμοποιήθηκε. Αυτό είναι αυτό που το κάνει να φαίνεται ότι “έχει” μια συγκεκριμένη τιμή (string).

Επομένως, όταν γράφουμε κάτι όπως:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
console.log(typeof "John"); // Επιστρέφει τη συμβολοσειρά "string"
console.log(typeof "John"); // Επιστρέφει τη συμβολοσειρά "string"
console.log(typeof "John"); // Επιστρέφει τη συμβολοσειρά "string"

Η typeof επιστρέφει μια συμβολοσειρά “string” που υποδηλώνει τον τύπο της τιμής "John" που περνάμε ως τελεστή. Επειδή πάντα επιστρέφει μια συμβολοσειρά, μπορούμε να περιγράψουμε το typeof ως έναν “τελεστή που επιστρέφει συμβολοσειρές”.

Στην JavaScript, οι αντικείμενοι έχουν ένα ενσωματωμένο ιδιότητα που ονομάζεται constructor. Αυτή η ιδιότητα δείχνει τη συνάρτηση κατασκευής (constructor function) που χρησιμοποιήθηκε για να δημιουργήσει το αντικείμενο.

Πιο συγκεκριμένα, αν δημιουργήσουμε ένα αντικείμενο χρησιμοποιώντας μια συνάρτηση κατασκευής, η ιδιότητα constructor θα αντιστοιχεί σε αυτήν τη συνάρτηση κατασκευής. Για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function Person(name, age) {
this.name = name;
this.age = age;
}
const john = new Person("John", 30);
console.log(john.constructor); // Εκτυπώνει τη συνάρτηση Person
function Person(name, age) { this.name = name; this.age = age; } const john = new Person("John", 30); console.log(john.constructor); // Εκτυπώνει τη συνάρτηση Person
function Person(name, age) {
  this.name = name;
  this.age = age;
}

const john = new Person("John", 30);

console.log(john.constructor); // Εκτυπώνει τη συνάρτηση Person

Στο παραπάνω παράδειγμα, το αντικείμενο john δημιουργήθηκε χρησιμοποιώντας τη συνάρτηση κατασκευής Person, οπότε η ιδιότητα constructor του αντικειμένου δείχνει στην Person συνάρτηση.

Είναι σημαντικό να σημειώσουμε ότι η ιδιότητα constructor μπορεί να αλλάξει, αν δηλαδή αλλάξουμε τη συνάρτηση κατασκευής ενός αντικειμένου. Αν χρησιμοποιήσουμε τον τελεστή new για να δημιουργήσουμε ένα αντικείμενο χωρίς τη λέξη-κλειδί function, τότε η ιδιότητα constructor θα αντιστοιχεί στην Object συνάρτηση, καθώς η Object είναι η προεπιλεγμένη συνάρτηση κατασκευής για αντικείμενα στην JavaScript.

Μπορούμε να ελέγξουμε την ιδιότητα constructor ενός αντικειμένου για να διαπιστώσουμε αν είναι ένας πίνακας (Array). Όπως αναφέρθηκε προηγουμένως, αν το αντικείμενο είναι ένας πίνακας, η ιδιότητα constructor θα αντιστοιχεί στην συνάρτηση κατασκευής Array. Μπορούμε να χρησιμοποιήσουμε αυτήν την ιδιότητα για να ελέγξουμε αν ένα αντικείμενο είναι ένας πίνακας ως εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const myArray = [1, 2, 3];
if (myArray.constructor === Array) {
console.log("Το myArray είναι ένας πίνακας.");
} else {
console.log("Το myArray δεν είναι ένας πίνακας.");
}
const myArray = [1, 2, 3]; if (myArray.constructor === Array) { console.log("Το myArray είναι ένας πίνακας."); } else { console.log("Το myArray δεν είναι ένας πίνακας."); }
const myArray = [1, 2, 3];

if (myArray.constructor === Array) {
  console.log("Το myArray είναι ένας πίνακας.");
} else {
  console.log("Το myArray δεν είναι ένας πίνακας.");
}

Η παραπάνω εκτύπωση θα εμφανίσει το μήνυμα “Το myArray είναι ένας πίνακας”, καθώς η constructor του myArray αντιστοιχεί στην συνάρτηση κατασκευής Array.

Ωστόσο, είναι σημαντικό να σημειώσουμε ότι αντικείμενα σε JavaScript μπορούν να έχουν τη δική τους προσαρμοσμένη συνάρτηση κατασκευής, η οποία μπορεί να μην είναι η προεπιλεγμένη συνάρτηση Array. Για παράδειγμα, αν έχουμε το εξής αντικείμενο:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const myObject = {
name: "John",
age: 30
};
const myObject = { name: "John", age: 30 };
const myObject = {
  name: "John",
  age: 30
};

Και αντιστοιχήσουμε μια δική μας προσαρμοσμένη συνάρτηση κατασκευής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function CustomObject(name, age) {
this.name = name;
this.age = age;
}
const myCustomObject = new CustomObject("Jane", 25);
function CustomObject(name, age) { this.name = name; this.age = age; } const myCustomObject = new CustomObject("Jane", 25);
function CustomObject(name, age) {
  this.name = name;
  this.age = age;
}

const myCustomObject = new CustomObject("Jane", 25);

Στην περίπτωση αυτή, το αντικείμενο myCustomObject δεν είναι πίνακας, αλλά αν ελέγξουμε την constructor, θα δούμε ότι αντιστοιχεί στην συνάρτηση κατασκευής CustomObject.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if (myCustomObject.constructor === Array) {
console.log("Το myCustomObject είναι ένας πίνακας.");
} else if (myCustomObject.constructor === CustomObject) {
console.log("Το myCustomObject είναι ένα δικό μας προσαρμοσμένο αντικείμενο.");
} else {
console.log("Το myCustomObject δεν είναι ούτε πίνακας ούτε δικό μας προσαρμοσμένο αντικείμενο.");
}
if (myCustomObject.constructor === Array) { console.log("Το myCustomObject είναι ένας πίνακας."); } else if (myCustomObject.constructor === CustomObject) { console.log("Το myCustomObject είναι ένα δικό μας προσαρμοσμένο αντικείμενο."); } else { console.log("Το myCustomObject δεν είναι ούτε πίνακας ούτε δικό μας προσαρμοσμένο αντικείμενο."); }
if (myCustomObject.constructor === Array) {
  console.log("Το myCustomObject είναι ένας πίνακας.");
} else if (myCustomObject.constructor === CustomObject) {
  console.log("Το myCustomObject είναι ένα δικό μας προσαρμοσμένο αντικείμενο.");
} else {
  console.log("Το myCustomObject δεν είναι ούτε πίνακας ούτε δικό μας προσαρμοσμένο αντικείμενο.");
}

Η παραπάνω εκτύπωση θα εμφανίσει το μήνυμα “Το myCustomObject είναι ένα δικό μας προσαρμοσμένο αντικείμενο”.

Στη JavaScript, η τιμή undefined αντιστοιχεί σε μια μη ορισμένη τιμή ή μια μη υπαρκτή τιμή. Όταν δημιουργούμε μια μεταβλητή και δεν της δίνουμε καμία τιμή, η μεταβλητή αυτή θα έχει την τιμή undefined. Επίσης, αν προσπαθήσουμε να αποκτήσουμε πρόσβαση σε μια μη υπάρχουσα ιδιότητα ή δείκτη σε ένα αντικείμενο, η τιμή που θα επιστρέψει θα είναι undefined.

Εδώ είναι μερικά παραδείγματα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let x; // Δημιουργία μιας μεταβλητής x χωρίς να δίνουμε τιμή
console.log(x); // Θα εμφανίσει: undefined
const person = {
name: "John",
age: 30
};
console.log(person.name); // Θα εμφανίσει: "John"
console.log(person.address); // Θα εμφανίσει: undefined, διότι η ιδιότητα address δεν υπάρχει
let x; // Δημιουργία μιας μεταβλητής x χωρίς να δίνουμε τιμή console.log(x); // Θα εμφανίσει: undefined const person = { name: "John", age: 30 }; console.log(person.name); // Θα εμφανίσει: "John" console.log(person.address); // Θα εμφανίσει: undefined, διότι η ιδιότητα address δεν υπάρχει
let x; // Δημιουργία μιας μεταβλητής x χωρίς να δίνουμε τιμή
console.log(x); // Θα εμφανίσει: undefined

const person = {
  name: "John",
  age: 30
};

console.log(person.name); // Θα εμφανίσει: "John"
console.log(person.address); // Θα εμφανίσει: undefined, διότι η ιδιότητα address δεν υπάρχει

Το undefined δεν είναι το ίδιο με το null. Όταν μια μεταβλητή δεν έχει οριστεί, έχει τιμή undefined. Αντίθετα, το null χρησιμοποιείται για να δηλώσει ότι ένα αντικείμενο ή μια μεταβλητή δεν έχει κάποια έγκυρη τιμή ή αντιπροσωπεύει μια “κενή” τιμή.

[adinserter block=”4″]

Στη JavaScript, υπάρχουν δύο τύποι κενών τιμών: το null και το undefined.

  1. null: Χρησιμοποιείται για να δηλώσει ότι ένα αντικείμενο ή μια μεταβλητή δεν έχει κάποια έγκυρη τιμή ή αντιπροσωπεύει μια “κενή” τιμή. Συνειδητά αντιστοιχίζουμε την τιμή null σε μια μεταβλητή ή ιδιότητα όταν δεν υπάρχει έγκυρη τιμή για αυτήν.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let x = null;
console.log(x); // Θα εμφανίσει: null
const person = {
name: "John",
age: null // Η ηλικία δεν έχει οριστεί, οπότε της δίνουμε την τιμή null
};
let x = null; console.log(x); // Θα εμφανίσει: null const person = { name: "John", age: null // Η ηλικία δεν έχει οριστεί, οπότε της δίνουμε την τιμή null };
let x = null;
console.log(x); // Θα εμφανίσει: null

const person = {
  name: "John",
  age: null // Η ηλικία δεν έχει οριστεί, οπότε της δίνουμε την τιμή null
};
  1. undefined: Χρησιμοποιείται για να δηλώσει μια μη ορισμένη τιμή ή μια μη υπαρκτή τιμή. Όταν δημιουργούμε μια μεταβλητή και δεν της δίνουμε καμία τιμή ή όταν προσπαθούμε να αποκτήσουμε πρόσβαση σε μια μη υπάρχουσα ιδιότητα ή δείκτη σε ένα αντικείμενο, η τιμή που θα επιστρέψει θα είναι undefined.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let y; // Δημιουργία μιας μεταβλητής y χωρίς να δίνουμε τιμή
console.log(y); // Θα εμφανίσει: undefined
const person = {
name: "John",
age: 30
};
console.log(person.address); // Θα εμφανίσει: undefined, διότι η ιδιότητα address δεν υπάρχει
let y; // Δημιουργία μιας μεταβλητής y χωρίς να δίνουμε τιμή console.log(y); // Θα εμφανίσει: undefined const person = { name: "John", age: 30 }; console.log(person.address); // Θα εμφανίσει: undefined, διότι η ιδιότητα address δεν υπάρχει
let y; // Δημιουργία μιας μεταβλητής y χωρίς να δίνουμε τιμή
console.log(y); // Θα εμφανίσει: undefined

const person = {
  name: "John",
  age: 30
};

console.log(person.address); // Θα εμφανίσει: undefined, διότι η ιδιότητα address δεν υπάρχει

Επομένως, και τα δύο null και undefined αντιπροσωπεύουν κενές τιμές, αλλά χρησιμοποιούνται σε διαφορετικές περιπτώσεις, όπως αναφέρθηκε παραπάνω.

Στη JavaScript, το null είναι ένας πρωτογενής τύπος δεδομένων που χρησιμοποιείται για να αντιπροσωπεύσει μια “κενή” τιμή ή μια μη υπαρκτή τιμή. Όταν μια μεταβλητή ή ιδιότητα έχει την τιμή null, σημαίνει ότι δεν έχει κάποια έγκυρη τιμή.

Ο τύπος δεδομένων null μπορεί να χρησιμοποιηθεί για διάφορους σκοπούς:

  1. Να δηλώσει ότι μια μεταβλητή δεν έχει κάποια τιμή ή δεν έχει οριστεί ακόμη.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let age = null; // Δηλώνουμε μια μεταβλητή age χωρίς τιμή
let age = null; // Δηλώνουμε μια μεταβλητή age χωρίς τιμή
let age = null; // Δηλώνουμε μια μεταβλητή age χωρίς τιμή
  1. Να δηλώσει ότι μια μεταβλητή ή ιδιότητα δεν έχει κάποια έγκυρη τιμή ή δεν έχει ακόμη αρχικοποιηθεί.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const person = {
name: "John",
age: null, // Η ηλικία δεν έχει ακόμη οριστεί, οπότε της δίνουμε την τιμή null
};
const person = { name: "John", age: null, // Η ηλικία δεν έχει ακόμη οριστεί, οπότε της δίνουμε την τιμή null };
const person = {
  name: "John",
  age: null, // Η ηλικία δεν έχει ακόμη οριστεί, οπότε της δίνουμε την τιμή null
};

Σημείωση: Το null είναι ένας τύπος δεδομένων και έχει μια μοναδική τιμή, που είναι ακριβώς το null. Όταν ελέγχουμε μια μεταβλητή ή μια ιδιότητα αντιστοιχίζοντας την με το null, πρέπει να είμαστε προσεκτικοί να χρησιμοποιήσουμε τον τελεστή === (ταυτότητα) αντί του == (ίσος), διότι ο τελευταίος θα επιστρέψει true όταν συγκρίνουμε null με τις τιμές null ή undefined.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let age = null;
console.log(age == null); // Εκτυπώνει: true
console.log(age === null); // Εκτυπώνει: true
console.log(age == undefined); // Εκτυπώνει: true
console.log(age === undefined); // Εκτυπώνει: false
let age = null; console.log(age == null); // Εκτυπώνει: true console.log(age === null); // Εκτυπώνει: true console.log(age == undefined); // Εκτυπώνει: true console.log(age === undefined); // Εκτυπώνει: false
let age = null;

console.log(age == null); // Εκτυπώνει: true
console.log(age === null); // Εκτυπώνει: true
console.log(age == undefined); // Εκτυπώνει: true
console.log(age === undefined); // Εκτυπώνει: false

Συνοψίζοντας, το null αντιπροσωπεύει μια κενή τιμή ή μια τιμή που δεν υπάρχει, και χρησιμοποιείται όταν δεν υπάρχει έγκυρη τιμή που να αντιπροσωπεύει την κατάσταση ή την τιμή μιας μεταβλητής ή μιας ιδιότητας.

Στη JavaScript, το null είναι ένας πρωτογενής τύπος δεδομένων που χρησιμοποιείται για να αντιπροσωπεύσει μια “κενή” τιμή ή μια μη υπαρκτή τιμή. Όταν μια μεταβλητή ή ιδιότητα έχει την τιμή null, σημαίνει ότι δεν έχει κάποια έγκυρη τιμή.

Ο τύπος δεδομένων null μπορεί να χρησιμοποιηθεί για διάφορους σκοπούς:

  1. Να δηλώσει ότι μια μεταβλητή δεν έχει κάποια τιμή ή δεν έχει οριστεί ακόμη.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let age = null; // Δηλώνουμε μια μεταβλητή age χωρίς τιμή
let age = null; // Δηλώνουμε μια μεταβλητή age χωρίς τιμή
let age = null; // Δηλώνουμε μια μεταβλητή age χωρίς τιμή
  1. Να δηλώσει ότι μια μεταβλητή ή ιδιότητα δεν έχει κάποια έγκυρη τιμή ή δεν έχει ακόμη αρχικοποιηθεί.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const person = {
name: "John",
age: null, // Η ηλικία δεν έχει ακόμη οριστεί, οπότε της δίνουμε την τιμή null
};
const person = { name: "John", age: null, // Η ηλικία δεν έχει ακόμη οριστεί, οπότε της δίνουμε την τιμή null };
const person = {
  name: "John",
  age: null, // Η ηλικία δεν έχει ακόμη οριστεί, οπότε της δίνουμε την τιμή null
};

Σημείωση: Το null είναι ένας τύπος δεδομένων και έχει μια μοναδική τιμή, που είναι ακριβώς το null. Όταν ελέγχουμε μια μεταβλητή ή μια ιδιότητα αντιστοιχίζοντας την με το null, πρέπει να είμαστε προσεκτικοί να χρησιμοποιήσουμε τον τελεστή === (ταυτότητα) αντί του == (ίσος), διότι ο τελευταίος θα επιστρέψει true όταν συγκρίνουμε null με τις τιμές null ή undefined.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let age = null;
console.log(age == null); // Εκτυπώνει: true
console.log(age === null); // Εκτυπώνει: true
console.log(age == undefined); // Εκτυπώνει: true
console.log(age === undefined); // Εκτυπώνει: false
let age = null; console.log(age == null); // Εκτυπώνει: true console.log(age === null); // Εκτυπώνει: true console.log(age == undefined); // Εκτυπώνει: true console.log(age === undefined); // Εκτυπώνει: false
let age = null;

console.log(age == null); // Εκτυπώνει: true
console.log(age === null); // Εκτυπώνει: true
console.log(age == undefined); // Εκτυπώνει: true
console.log(age === undefined); // Εκτυπώνει: false

Συνοψίζοντας, το null αντιπροσωπεύει μια κενή τιμή ή μια τιμή που δεν υπάρχει, και χρησιμοποιείται όταν δεν υπάρχει έγκυρη τιμή που να αντιπροσωπεύει την κατάσταση ή την τιμή μιας μεταβλητής ή μιας ιδιότητας.

[adinserter block=”5″]

Ο τελεστής instanceof είναι ένας τελεστής σύγκρισης που χρησιμοποιείται για να ελέγξει αν ένα αντικείμενο ανήκει σε έναν συγκεκριμένο τύπο ή κλάση. Αναφέρεται στην παρακολούθηση της ιεραρχικής αλυσίδας προτύπων ενός αντικειμένου.

Η σύνταξη του τελεστή instanceof είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
object instanceof constructor
object instanceof constructor
object instanceof constructor

όπου object είναι το αντικείμενο που ελέγχουμε και constructor είναι η συνάρτηση κατασκευής ή η κλάση προτύπου που θέλουμε να ελέγξουμε αν το αντικείμενο ανήκει σε αυτήν.

Ο τελεστής instanceof επιστρέφει true αν το αντικείμενο ανήκει στην κλάση που προσδιορίζεται από τον constructor, διαφορετικά επιστρέφει false.

Ας δούμε ένα παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name);
this.breed = breed;
}
}
const dog = new Dog("Buddy", "Labrador");
console.log(dog instanceof Dog); // Εκτυπώνει: true, διότι το αντικείμενο dog ανήκει στην κλάση Dog
console.log(dog instanceof Animal); // Εκτυπώνει: true, διότι το αντικείμενο dog ανήκει στην κλάση Animal (η οποία είναι υπερκλάση της κλάσης Dog)
console.log(dog instanceof Object); // Εκτυπώνει: true, διότι όλα τα αντικείμενα στη JavaScript ανήκουν στην κλάση Object
class Animal { constructor(name) { this.name = name; } } class Dog extends Animal { constructor(name, breed) { super(name); this.breed = breed; } } const dog = new Dog("Buddy", "Labrador"); console.log(dog instanceof Dog); // Εκτυπώνει: true, διότι το αντικείμενο dog ανήκει στην κλάση Dog console.log(dog instanceof Animal); // Εκτυπώνει: true, διότι το αντικείμενο dog ανήκει στην κλάση Animal (η οποία είναι υπερκλάση της κλάσης Dog) console.log(dog instanceof Object); // Εκτυπώνει: true, διότι όλα τα αντικείμενα στη JavaScript ανήκουν στην κλάση Object
class Animal {
  constructor(name) {
    this.name = name;
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name);
    this.breed = breed;
  }
}

const dog = new Dog("Buddy", "Labrador");

console.log(dog instanceof Dog); // Εκτυπώνει: true, διότι το αντικείμενο dog ανήκει στην κλάση Dog
console.log(dog instanceof Animal); // Εκτυπώνει: true, διότι το αντικείμενο dog ανήκει στην κλάση Animal (η οποία είναι υπερκλάση της κλάσης Dog)
console.log(dog instanceof Object); // Εκτυπώνει: true, διότι όλα τα αντικείμενα στη JavaScript ανήκουν στην κλάση Object

Σημειώστε ότι ο τελεστής instanceof αναζητά την ιεραρχία προτύπων του αντικειμένου και αν το αντικείμενο ανήκει σε μια από αυτές τις κλάσεις ή υπερκλάσεις, τότε επιστρέφει true. Εάν το αντικείμενο δεν ανήκει σε καμία από αυτές τις κλάσεις, τότε επιστρέφει false.

Ο τελεστής void είναι ένας μοναδικός τελεστής στη JavaScript που μπορεί να χρησιμοποιηθεί για να καταστήσει μια έκφραση undefined. Ο τελεστής void δεν εκτελεί κάποια πράξη ή αλλαγή στην έκφραση που παρέχεται ως όρισμα, απλά κάνει την έκφραση να αξιολογείται ως undefined.

Η σύνταξη του τελεστή void είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
void expression
void expression
void expression

όπου expression είναι η έκφραση που θέλουμε να αξιολογηθεί ως undefined.

Ας δούμε μερικά παραδείγματα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
void 0; // Επιστρέφει: undefined
void (5 + 2); // Επιστρέφει: undefined
void "Hello"; // Επιστρέφει: undefined
void 0; // Επιστρέφει: undefined void (5 + 2); // Επιστρέφει: undefined void "Hello"; // Επιστρέφει: undefined
void 0; // Επιστρέφει: undefined
void (5 + 2); // Επιστρέφει: undefined
void "Hello"; // Επιστρέφει: undefined

Μπορεί να φαίνεται περίεργο να χρησιμοποιείτε τον τελεστή void για να αξιολογήσετε μια έκφραση ως undefined, αλλά υπάρχουν κάποιες περιπτώσεις που μπορεί να χρησιμοποιηθεί. Μια από αυτές είναι όταν θέλουμε να αποτρέψουμε τον φυλλομετρητή να φορτώσει μια νέα σελίδα όταν κάνουμε κλικ σε έναν σύνδεσμο. Για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<a href="https://www.example.com" onclick="void(0);">Click Me</a>
<a href="https://www.example.com" onclick="void(0);">Click Me</a>
<a href="https://www.example.com" onclick="void(0);">Click Me</a>

Στο παραπάνω παράδειγμα, ο τελεστής void χρησιμοποιείται στο onclick για να αποτρέψει τον φυλλομετρητή να φορτώσει τη διεύθυνση που περιέχεται στον σύνδεσμο, επιτρέποντας μας να εκτελέσουμε ένα συγκεκριμένο κομμάτι κώδικα αντί για τη φόρτωση μιας νέας σελίδας.

21 Αυγούστου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων