01. Ορισμοί συναρτήσεων JavaScript

Function Definitions


Οι συναρτήσεις στη JavaScript ορίζονται με τη λέξη-κλειδί  function .

Μπορείτε να χρησιμοποιήσετε μια δήλωση (declaration) συνάρτησης ή μια έκφραση (expression) συνάρτησης.


Δηλώσεις (declarations) συναρτήσεων

Νωρίτερα σε αυτό το σεμινάριο, μάθαμε ότι οι συναρτήσεις δηλώνονται με την ακόλουθη σύνταξη:

function functionName(parameters) {
  // code to be executed
}

Οι δηλωμένες συναρτήσεις δεν εκτελούνται αμέσως. “Αποθηκεύονται για μεταγενέστερη χρήση” και θα εκτελούνται αργότερα, όταν θα καλούνται.

Παράδειγμα

function myFunction(a, b) {
  return a * b;
}

Δοκιμάστε τον εαυτό σας »

Τα ερωτηματικά (semicolons) χρησιμοποιούνται για να διαχωριστούν εκτελέσιμες εντολές της JavaScript.
Δεδομένου ότι μια δήλωση συνάρτησης δεν είναι μια εκτελέσιμη εντολή, δεν είναι συνηθισμένο να τερματίζεται με ένα ερωτηματικό.


Εκφράσεις (expressions) συναρτήσεων

Μια συνάρτηση JavaScript μπορεί επίσης να οριστεί χρησιμοποιώντας μια έκφραση .

Μια έκφραση συνάρτησης μπορεί να αποθηκευτεί σε μια μεταβλητή:

Παράδειγμα

var x = function (a, b) {return a * b};

Δοκιμάστε τον εαυτό σας »

Αφού αποθηκευτεί μια έκφραση συνάρτησης σε μια μεταβλητή, η μεταβλητή μπορεί να χρησιμοποιηθεί ως συνάρτηση:

Παράδειγμα

var x = function (a, b) {return a * b};
var z = x(4, 3);

Δοκιμάστε τον εαυτό σας »

Η παραπάνω συνάρτηση είναι στην πραγματικότητα μια ανώνυμη συνάρτηση (anonymous function) (μια συνάρτηση χωρίς όνομα).

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

Η παραπάνω συνάρτηση τελειώνει με ένα ερωτηματικό επειδή είναι μέρος μιας εκτελέσιμης εντολής.


Η συνάρτηση κατασκευαστή Constructor()

Όπως έχουμε δει στα προηγούμενα παραδείγματα, οι συναρτήσεις JavaScript ορίζονται με τη λέξη-κλειδί function.

Οι συναρτήσεις μπορούν επίσης να οριστούν με τον ενσωματωμένο κατασκευαστή συναρτήσεων JavaScript που ονομάζεται Function().

Παράδειγμα

var myFunction = new Function("a", "b", "return a * b");

var x = myFunction(4, 3);

Δοκιμάστε τον εαυτό σας »

Στην πραγματικότητα δεν χρειάζεται να χρησιμοποιήσετε τον κατασκευαστή συναρτήσεων. Το παραπάνω παράδειγμα είναι το ίδιο με το παρακάτω:

Παράδειγμα

var myFunction = function (a, b) {return a * b};

var x = myFunction(4, 3);

Δοκιμάστε τον εαυτό σας »

Τις περισσότερες φορές, μπορείτε να αποφύγετε τη χρήση της λέξης-κλειδιού new στη JavaScript.


Συνάρτηση Ανύψωσης

Νωρίτερα σε αυτό το σεμινάριο μάθαμε για την “ανύψωση” (hoisting) ( JavaScript ανύψωση ).

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

Η ανύψωση ισχύει για δηλώσεις μεταβλητών και δηλώσεις συναρτήσεων.

Εξαιτίας αυτού, οι συναρτήσεις JavaScript μπορούν να καλούνται πριν δηλωθούν:

myFunction(5);

function myFunction(y) {
  return y * y;
}

Οι συναρτήσεις που ορίζονται με χρήση μιας έκφρασης δεν ανυψώνονται.


Αυτόκλητες συναρτήσεις

Οι εκφράσεις συναρτήσεων μπορούν να γίνουν “αυτόκλητες”.

Μια αυτόκλητη έκφραση ενεργοποιείται (ξεκινά) αυτόματα, χωρίς να καλείται.

Οι εκφράσεις συναρτήσεων θα εκτελούνται αυτόματα αν η έκφραση ακολουθείται από ().

Μια δήλωση συνάρτησης δεν μπορεί να είναι αυτόκλητη.

Πρέπει να προσθέσετε παρενθέσεις γύρω από τη συνάρτηση για να υποδείξετε ότι είναι μια έκφραση συνάρτησης:

Παράδειγμα

(function () {
  var x = "Hello!!";  // I will invoke myself
})();

Δοκιμάστε τον εαυτό σας »

Η παραπάνω συνάρτηση είναι στην πραγματικότητα μια ανώνυμη αυτόκλητη συνάρτηση (συνάρτηση χωρίς όνομα).


Οι συναρτήσεις μπορούν να χρησιμοποιηθούν ως τιμές

Οι συναρτήσεις JavaScript μπορούν να χρησιμοποιηθούν ως τιμές:

Παράδειγμα

function myFunction(a, b) {
  return a * b;
}

var x = myFunction(4, 3);

Δοκιμάστε τον εαυτό σας »

Οι συναρτήσεις JavaScript μπορούν να χρησιμοποιηθούν σε εκφράσεις:

Παράδειγμα

function myFunction(a, b) {
  return a * b;
}

var x = myFunction(4, 3) * 2;

Δοκιμάστε τον εαυτό σας »


Οι συναρτήσεις είναι Αντικείμενα

Ο JavaScript τελεστής typeof επιστρέφει “function” για τις συναρτήσεις.

Ωστόσο, οι συναρτήσεις JavaScript μπορούν καλύτερα να περιγραφούν ως αντικείμενα.

Οι συναρτήσεις JavaScript έχουν ιδιότητες και μεθόδους .

Η ιδιότητα arguments.length επιστρέφει τον αριθμό των ληφθέντων ορισμάτων κατά την κλήση της συνάρτησης:

Παράδειγμα

function myFunction(a, b) {
  return arguments.length;
}

Δοκιμάστε τον εαυτό σας »

Η μέθοδος toString() επιστρέφει τη συνάρτηση ως συμβολοσειρά:

Παράδειγμα

function myFunction(a, b) {
  return a * b;
}

var txt = myFunction.toString();

Δοκιμάστε τον εαυτό σας »

Μια συνάρτηση που ορίζεται ως η ιδιότητα ενός αντικειμένου, ονομάζεται μέθοδος του αντικειμένου.
Μια συνάρτηση που έχει σχεδιαστεί για τη δημιουργία νέων αντικειμένων, ονομάζεται κατασκευαστής αντικειμένων.


Συναρτήσεις βέλους (Arrow Functions)

Οι συναρτήσεις βέλους επιτρέπουν μια σύντομη σύνταξη στη γραφή εκφράσεων συναρτήσεων.

Δεν χρειάζεστε τη λέξη-κλειδί function, τη λέξη-κλειδί return και τα άγκιστρα .

Παράδειγμα

// ES5
var x = function(x, y) {
  return x * y;
}

// ES6
const x = (x, y) => x * y;

Δοκιμάστε τον εαυτό σας »

Οι arrow functions δεν έχουν το δικό τους this. Δεν είναι κατάλληλες για τον ορισμό μεθόδων αντικειμένων .

Οι arrow functions δεν ανυψώνονται. Πρέπει να οριστούν πριν χρησιμοποιηθούν.

Η χρήση const είναι ασφαλέστερη από τη χρήση var, επειδή μια έκφραση συνάρτησης είναι πάντα σταθερή τιμή.

Μπορείτε να παραλείψετε μόνο τη return λέξη-κλειδί και τα άγκιστρα εάν η συνάρτηση είναι μία μόνο δήλωση. Εξαιτίας αυτού, ίσως είναι καλή συνήθεια να τα κρατάτε πάντα:

Παράδειγμα

const x = (x, y) => { return x * y };

Δοκιμάστε τον εαυτό σας »

Οι arrow functions δεν υποστηρίζονται στο IE11 ή σε παλαιότερες εκδόσεις.

Days
Hours
Minutes

01. Ορισμοί συναρτήσεων JavaScript

Κοινοποίηση

Share on facebook
Share on twitter

Ακολουθήστε μας

Αρέσει σε %d bloggers: