Μια συνάρτηση
JavaScript δεν πραγματοποιεί κανέναν έλεγχο τιμές παραμέτρων (επιχειρήματα).
Νωρίτερα σε αυτό το σεμινάριο, μάθατε ότι οι συναρτήσεις μπορούν να έχουν παράμετροι:
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
Οι παράμετροι της συνάρτησης είναι τα ονόματα που αναφέρονται ο ορισμός της συνάρτησης.
Τα ορίσματα συναρτήσεων είναι οι πραγματικές τιμές πέρασε στη συνάρτηση (και ελήφθη από).
Οι ορισμοί συναρτήσεων JavaScript δεν καθορίζουν τύπους δεδομένων για Παράμετροι.
Οι συναρτήσεις JavaScript δεν εκτελούν έλεγχο τύπου στο περασμένο επιχειρήματα.
Οι συναρτήσεις JavaScript δεν ελέγχουν τον αριθμό των ορισμάτων που λαμβάνονται.
Εάν μια συνάρτηση καλείται με ορίσματα που λείπουν (λιγότερα από τα δηλωμένα), οι τιμές που λείπουν ορίζονται σε απροσδιόριστο
.
Μερικές φορές αυτό είναι αποδεκτό, αλλά μερικές φορές είναι καλύτερο να ορίσετε μια προεπιλογή τιμή στην παράμετρο:
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<body>
<p>Setting a default value to a function parameter.</p>
<p id="demo"></p>
<script>
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
return x * y;
}
document.getElementById("demo").innerHTML = myFunction(4);
</script>
</body>
</html>
Το ES6 επιτρέπει στις παραμέτρους συναρτήσεων να έχουν προεπιλεγμένες τιμές.
Εάν το y δεν έχει περάσει ή δεν έχει οριστεί, τότε y=10.
function myFunction(x, y = 10) { return x + y;
}
myFunction(5);
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<h2>Default Parameter Values</h2>
<p>If y is not passed or undefined, then y = 10:</p>
<p id="demo"></p>
<script>
function myFunction(x, y = 10) {
return x + y;
}
document.getElementById("demo").innerHTML = myFunction(5);
</script>
</body>
</html>
Η παράμετρος rest (...) επιτρέπει σε μια συνάρτηση να αντιμετωπίζει έναν απροσδιόριστο αριθμό ορισμάτων ως πίνακα:
function sum(...args) {
let sum = 0;
for (let arg of args) sum += arg;
return sum;
}
let x = sum(4, 9, 16, 25, 29, 100, 66, 77);
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<h2>The Rest Parameter</h2>
<p>The rest parameter (...) allows a function to treat an indefinite number of arguments as an array:</p>
<p id="demo"></p>
<script>
function sum(...args) {
let sum = 0;
for (let arg of args) sum += arg;
return sum;
}
let x = sum(4, 9, 16, 25, 29, 100, 66, 77);
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
Οι συναρτήσεις JavaScript έχουν ένα ενσωματωμένο αντικείμενο που ονομάζεται ορίσματα αντικείμενο.
Το αντικείμενο ορίσματος περιέχει έναν πίνακα από τα ορίσματα που χρησιμοποιούνται όταν η συνάρτηση κλήθηκε (επικαλέστηκε).
Με αυτόν τον τρόπο μπορείτε απλά να χρησιμοποιήσετε μια συνάρτηση για να βρείτε (για παράδειγμα) την υψηλότερη τιμή σε μια λίστα αριθμών:
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Functions</h2>
<p>Finding the largest number.</p>
<p id="demo"></p>
<script>
function findMax() {
let max = -Infinity;
for(let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
document.getElementById("demo").innerHTML = findMax(4, 5, 6);
</script>
</body>
</html>
Ή δημιουργήστε μια συνάρτηση για να αθροίσει όλες τις τιμές εισόδου:
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Functions</h2>
<p>Sum of all arguments:</p>
<p id="demo"></p>
<script>
function sumAll() {
let sum = 0;
for(let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
document.getElementById("demo").innerHTML = sumAll(1, 123, 500, 115, 44, 88);
</script>
</body>
</html>
Εάν μια συνάρτηση καλείται με πάρα πολλά ορίσματα (περισσότερα από τα δηλωμένα), Μπορείτε να προσεγγίσετε αυτά τα ορίσματα χρησιμοποιώντας το αντικείμενο ορίσματα.
Οι παράμετροι, σε μια κλήση συνάρτησης, είναι τα ορίσματα της συνάρτησης.
Τα ορίσματα JavaScript μεταβιβάζονται από τιμή: Μόνο η συνάρτηση γνωρίζει τις τιμές, όχι τις τοποθεσίες του επιχειρήματος.
Εάν μια συνάρτηση αλλάξει την τιμή ενός ορίσματος, δεν αλλάζει την τιμή της παραμέτρου αρχική αξία.
Οι αλλαγές στα ορίσματα δεν είναι ορατές (αντανακλώνται) εκτός της συνάρτησης.
Στο JavaScript, οι αναφορές αντικειμένων είναι τιμές.
Εξαιτίας αυτού, τα αντικείμενα θα συμπεριφέρονται σαν να έχουν περάσει από αναφορά:
Εάν μια συνάρτηση αλλάξει μια ιδιότητα αντικειμένου, αλλάζει την αρχική τιμή.
Οι αλλαγές στις ιδιότητες των αντικειμένων είναι ορατές (αντανακλώνται) εκτός της συνάρτησης.