Παράδειγμα JavaScript toString - Πώς να μετατρέψετε έναν αριθμό σε συμβολοσειρά σε JS και άλλα

Μερικές φορές θέλετε να μετατρέψετε έναν τύπο δεδομένων σε έναν άλλο τύπο δεδομένων χωρίς να αλλάξετε τις τιμές χειροκίνητα.

Για παράδειγμα, ίσως θέλετε να μετατρέψετε έναν αριθμό σε συμβολοσειρά. Το JavaScript το κάνει μερικές φορές σιωπηρά.

Όπως όταν χρησιμοποιείτε τον τελεστή διπλού ίσου ( ==) ή όταν προσπαθείτε να κάνετε κάτι σε μια τιμή με έναν τύπο δεδομένων που δεν είναι συμβατός με τη λειτουργία. Αυτό ονομάζεται Τύπος εξαναγκασμού.

Ωστόσο, μπορείτε επίσης να μετατρέψετε ρητά τους τύπους δεδομένων. Και θα σας δείξω πώς να το κάνετε σε αυτό το άρθρο.

Ο τύπος δεδομένων συμβολοσειράς είναι ένας πολύ κοινός τύπος δεδομένων σε JavaScript. Για σχεδόν κάθε άλλο τύπο δεδομένων, πρέπει να έχετε μια παράσταση συμβολοσειράς.

Όπως πρέπει να έχετε δει κάτι παρόμοιο με "[object Object]"όταν χρησιμοποιείτε ένα αντικείμενο αντί για μια πραγματική συμβολοσειρά.

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

Η toStringμέθοδος

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

Πώς να μετατρέψετε έναν αριθμό σε μια συμβολοσειρά

Η toStringμέθοδος υπάρχει σε κάθε κυριολεκτικό αριθμό. Μετατρέπει τους αριθμούς στις παραστάσεις συμβολοσειρών τους. Δείτε πώς χρησιμοποιείται:

const num = 54; console.log(num.toString()) // "54" 

Αλλά υπάρχουν περισσότερα σε αυτό. Η toStringμέθοδος για αριθμούς δέχεται επίσης ένα baseεπιχείρημα. Αυτό το επιχείρημα σας επιτρέπει να μετατρέψετε έναν αριθμό σε άλλη βάση.

Η επιστρεφόμενη τιμή είναι η παράσταση συμβολοσειράς του νέου αριθμού. Δείτε πώς χρησιμοποιείται:

const num = 54; const num2 = num.toString(2); console.log(num2); // "110110" 

parseIntείναι μια άλλη μέθοδος JavaScript η οποία, σε αντίθεση, μετατρέπει τις συμβολοσειρές στις αντίστοιχες αναπαραστάσεις αριθμών. Ετσι δουλευει:

const numInStr = "54"; const str = "Hello"; console.log(parseInt(numInStr)); // 54 console.log(parseInt(str)); // NaN 

Για μια μεταβλητή που δεν είναι παρόμοια με έναν αριθμό, parseIntεπιστρέφει Nanόπως φαίνεται παραπάνω.

Πώς να μετατρέψετε έναν πίνακα σε μια συμβολοσειρά σε JavaScript

Οι πίνακες έχουν επίσης τη toStringμέθοδο. Η επιστρεφόμενη τιμή αυτής της μεθόδου είναι μια συνένωση όλων των τιμών του πίνακα (και των πυρήνων σε αυτό) που διαχωρίζονται με κόμματα. Δείτε πώς χρησιμοποιείται:

const arr = ["javascript", "toString", [1, "deep1", [3, 4, "array"]]]; console.log(arr.toString()); // "javascript,toString,1,deep1,3,4,array" 

Πώς να μετατρέψετε ένα αντικείμενο σε συμβολοσειρά σε JavaScript

Η τιμή επιστροφής toStringενός αντικειμένου είναι - όπως ακριβώς έχετε συναντήσει συχνά - "[object Object]". Για παράδειγμα:

const obj = {name: 'Object'}; const obj2 = {type: 'data', number: 100}; console.log(obj.toString()); // [object Object] console.log(obj2.toString()); // [object Object] 

Η προεπιλεγμένη μετατροπή αντικειμένων σε συμβολοσειρά είναι [object Object]. Παρατηρήστε ότι υπάρχουν δύο object, και όχι μόνο ένα; Και το άλλο κεφαλαιοποιείται;

Υπάρχουν περισσότερες αναπαραστάσεις για αντικείμενα όπως αυτό που ακολουθεί:

function print() {}; const arr = []; const obj = {}; console.log( Object.prototype.toString.call(print), Object.prototype.toString.call(arr), Object.prototype.toString.call(obj) ) // [object Function] [object Array] [object Object] 

Οι λειτουργίες, οι πίνακες, τα αντικείμενα, ακόμη και οι ημερομηνίες και το Regex είναι όλα αντικείμενα. Και κάθε ένα από αυτά έχει τη toStringμέθοδο.

Όταν τους toStringκαλείται, αρπάζει όποια κατηγορία αντικειμένου είναι η τιμή και στη συνέχεια το εκτυπώνει όπως βλέπετε παραπάνω ("Function, Array, Object).

Χρησιμοποιούμε call(variable)γιατί toStringπαίρνει την κλάση αντικειμένων μέσω της thisιδιότητας.

συμπέρασμα

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

Σε αυτό το άρθρο, μάθαμε πώς λειτουργεί η toStringμέθοδος JavaScript με τα numbers, arrays και objects και εξετάσαμε επίσης λίγο parseInt.