Skip to main content

Αλλαγή Τύπου

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

Υπάρχουν δύο τρόποι για να αλλάξει ο τύπος μιας τιμής:

  • Type Conversion (Type Casting)
  • Type Coercion (Implicit Type Conversion)

Type Conversion

Με αυτόν τον όρο εννοούμε την εξαναγκασμένη αλλαγή τύπου μιας τιμής από τον προγραμματιστή. Αυτό γίνεται με τη χρήση των συναρτήσεων Number(), String(), Boolean().

Number()

Συνάρτηση που μετατρέπει μια τιμή σε αριθμό.

const x = "10";
console.log(Number(x)); // 10

Αν η τιμή δεν μπορεί να μετατραπεί σε αριθμό, τότε η συνάρτηση επιστρέφει την τιμή NaN.

const x = "Hello";
console.log(Number(x)); // NaN

Γενικότερα οι κανόνες που ισχύουν για τη μετατροπή σε αριθμό είναι οι εξής:

ΤιμήΜετατρέπεται σε...
undefinedNaN
null0
true1
false0
stringΜετατρέπεται σε αριθμό. Αν το string δεν περιέχει αριθμό, τότε μετατρέπεται σε NaN

String()

Συνάρτηση που μετατρέπει μια τιμή σε αλφαριθμητικό.

const x = 10;
console.log(String(x)); // "10"

Boolean()

Συνάρτηση που μετατρέπει μια τιμή σε boolean.

Οι εξής τιμές μετατρέπονται σε false:

  • false
  • 0
  • "" (κενό string)
  • null
  • undefined
  • NaN

Οποιαδήποτε άλλη τιμή μετατρέπεται σε true.

const x = 0;
console.log(Boolean(x)); // false

const y = "Hello";
console.log(Boolean(y)); // true

Type Coercion

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

Για παράδειγμα, όταν μια αριθμητική τιμή συγκρίνεται με μια αλφαριθμητική τιμή, η αλφαριθμητική τιμή μετατρέπεται σε αριθμό.

const x = 10;
const y = "10";

console.log(x == y); // true

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

Συνένωση Τύπων

Όταν συνενώνουμε δύο αλφαριθμητικές τιμές με τον τελεστή +, τότε οι τιμές μετατρέπονται σε αλφαριθμητικές.

const x = "Hello";
const y = "World";

console.log(x + y); // "HelloWorld"

Αν η μία τιμή είναι αριθμός, τότε η αλλη τιμή μετατρέπεται σε αριθμό.

const x = 10;
const y = "20";

console.log(x + y); // 30

Αν οι δύο τιμές είναι αριθμοί, τότε γίνεται αριθμητική πρόσθεση.

const x = 10;
const y = 20;

console.log(x + y); // 30