⊗jsPmFVNC 220 of 505 menu

Πανομοιότυπα ονόματα μεταβλητών σε συναρτήσεις στην JavaScript

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

let num = 1; // καθολική μεταβλητή function func() { let num = 2; // τοπική μεταβλητή console.log(num); } func(); // καλούμε τη συνάρτηση, θα εμφανίσει 2 console.log(num); // θα εμφανίσει 1 - η καθολική μεταβλητή δεν άλλαξε

Όμως, αν ξεχάσουμε να δηλώσουμε την τοπική μεταβλητή num μέσω του let, τότε μέσα στη συνάρτηση δεν θα δημιουργηθεί τοπική μεταβλητή num, αλλά απλώς θα αλλάξει η καθολική μεταβλητή:

let num = 1; function func() { num = 2; // ξεχάσαμε να γράψουμε let - αλλάζουμε την εξωτερική μεταβλητή console.log(num); } func(); // καλούμε τη συνάρτηση, θα εμφανίσει 2 console.log(num); // θα εμφανίσει 2 - η μεταβλητή άλλαξε

Εδώ μπορεί να υπάρχουν δύο καταστάσεις: ή πραγματικά θέλαμε να αλλάξουμε την καθολική μεταβλητή (τότε όλα είναι εντάξει), ή ξεχάσαμε το let και τυχαία αλλάξαμε την καθολική μεταβλητή.

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

Προσδιορίστε, χωρίς να εκτελέσετε τον κώδικα, τι θα εμφανιστεί στην κονσόλα:

let num = 1; function func() { num = 2; } func(); console.log(num);

Προσδιορίστε, χωρίς να εκτελέσετε τον κώδικα, τι θα εμφανιστεί στην κονσόλα:

let num = 1; function func() { let num = 2; } func(); console.log(num);
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη