⊗jsPmFVGVP 222 of 505 menu

Καθολικές Μεταβλητές και Παράμετροι Συναρτήσεων σε JavaScript

Ας υποθέσουμε ότι έχουμε μια συνάρτηση που δέχεται έναν αριθμό ως παράμετρο:

function func(localNum) { console.log(localNum); }

Ας υποθέσουμε ότι εκτός της συνάρτησης υπάρχει μια μεταβλητή num:

function func(localNum) { console.log(localNum); } let num = 1; // εξωτερική καθολική μεταβλητή

Ας καλέσουμε τη συνάρτησή μας, περνώντας της τη μεταβλητή num ως παράμετρο:

function func(localNum) { console.log(localNum); } let num = 1; func(num); // καλούμε τη συνάρτηση με παράμετρο, θα τυπώσει 1

Θα συμβεί ότι μέσα στη συνάρτηση θα είναι προσβάσιμες τόσο η μεταβλητή localNum (η παράμετρος της συνάρτησης), όσο και η μεταβλητή num (ως εξωτερική μεταβλητή):

function func(localNum) { console.log(num); // θα τυπώσει 1 console.log(localNum); // θα τυπώσει 1 } let num = 1; func(num);

Η ίδια η μεταβλητή localNum θα είναι τοπική μεταβλητή της συνάρτησης και δεν θα είναι προσβάσιμη από έξω:

function func(localNum) { } let num = 1; func(num); // καλούμε τη συνάρτηση με παράμετρο console.log(localNum); // θα δώσει σφάλμα

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

function func(localNum) { localNum = 2; // δεν αλλάζει τίποτα έξω } let num = 1; func(num);

Εάν, however, αλλάξουμε μέσα στη συνάρτηση τη μεταβλητή num (την καθολική), τότε οι αλλαγές θα εμφανιστούν και έξω:

function func(localNum) { num = 2; } let num = 1; func(num); console.log(num); // θα τυπώσει 2

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

function func(localNum) { let num = 2; // δηλώνουμε μέσω let } let num = 1; func(num); console.log(num); // θα τυπώσει 1 - τίποτα δεν άλλαξε

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

function func(localNum) { console.log(localNum); } func(1);

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

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

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

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

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

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

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

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

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

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

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

function func(localNum) { let num = 2; } let num = 1; func(num); 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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη