Middle
Τι είναι μια καθαρή λειτουργία; Είναι ένα side-effect το console.log μέσα σε μια λειτουργία;
sobes.tech AI
Απάντηση από AI
Μια καθαρή συνάρτηση είναι μια συνάρτηση που, με τις ίδιες εισόδους, επιστρέφει πάντα το ίδιο αποτέλεσμα και δεν προκαλεί παρενέργειες (side-effects).
Οι παρενέργειες είναι οποιεσδήποτε ενέργειες της συνάρτησης που ξεπερνούν τον υπολογισμό της τιμής, για παράδειγμα:
- αλλαγή εξωτερικών μεταβλητών ή καταστάσεων,
- εκτέλεση εισόδου/εξόδου (όπως εγγραφή στην κονσόλα, εργασία με αρχεία, δίκτυο),
- αλλαγή των ορισμάτων της συνάρτησης.
Το console.log μέσα σε μια συνάρτηση αποτελεί παρενέργεια, καθώς εμφανίζει δεδομένα στην κονσόλα, επηρεάζοντας τον εξωτερικό κόσμο και δεν σχετίζεται άμεσα με την τιμή που επιστρέφει η συνάρτηση.
Παράδειγμα καθαρής συνάρτησης:
function add(a, b) {
return a + b;
}
Παράδειγμα συνάρτησης με παρενέργεια:
function logSum(a, b) {
const sum = a + b;
console.log(sum); // παρενέργεια
return sum;
}
Έτσι, το console.log μέσα στη συνάρτηση την καθιστά μη καθαρή.