O funcție JavaScript nu efectuează nici un control asupra valorilor parametrilor (arguments) .
Function Parameters de Arguments Function Parameters și Arguments
Mai devreme în acest tutorial, ați învățat că funcțiile pot avea parameters :
functionName ( parameter1, parameter2, parameter3 ) {
code to be executed
}
Function parameters sunt denumirile enumerate în definiția funcției.
Function arguments sunt valorile reale transmise la (and received by) funcția.
Reguli Parametru
definiții de funcții JavaScript nu specificați tipurile de date pentru parametrii.
funcțiile JavaScript nu efectuează tip de verificare pe argumentele transmise.
funcțiile JavaScript nu verifica numărul de argumente primite.
valori prestabilite Parametru
Dacă o funcție se numește cu argumente care lipsesc (less than declared) , valorile care lipsesc sunt setate la: nedefinit
Uneori, acest lucru este acceptabil, dar uneori este mai bine să atribuie o valoare implicită pentru parametrul:
Dacă o funcție este apelată cu prea multe argumente (more than declared) cele (more than declared) , aceste argumente pot fi atinse folosind argumentele obiect.
Argumentele obiect
funcțiile JavaScript au încorporat un obiect numit argumentele obiect.
Obiectul argument conține o serie de argumentele folosite atunci când funcția a fost numită (invoked) .
Astfel , puteți utiliza pur și simplu o funcție pentru a găsi (for instance) cea mai mare valoare într - o listă de numere:
Exemplu
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i;
var max = -Infinity;
for (i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
Încearcă - l singur » Sau creați o funcție pentru a rezuma toate valorile de intrare:
Exemplu
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
var i, sum = 0;
for (i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
Încearcă - l singur » Argumentele sunt transmise prin valoare
Parametrii, într-un apel de funcție, sunt argumentele functiei.
Argumentele JavaScript sunt transmise prin valoare: Funcția devine doar să cunoască valorile, nu locațiile argumentului.
Dacă o funcție modifică valoarea unui argument, aceasta nu se schimba valoarea inițială a parametrului.
Modificările aduse argumente nu sunt vizibile (reflected) în afara funcției.
Obiectele sunt transmise prin referință
În JavaScript, referințele obiect sunt valori.
Din acest motiv, obiectele se vor comporta ca acestea sunt transmise prin referință:
În cazul în care o funcție schimbă un obiect de proprietate, se schimbă valoarea inițială.
Modificări de opoziție proprietăți sunt vizibile (reflected) în afara funcției.