Параметри на функцията

Функциите в JavaScript не извършват проверки за стойностите на параметрите (аргументи).

Параметри и Аргументи при JavaScript функциите

По-рано през този урок научихме, че функциите могат да имат параметри. И в повечето случаи те имат такива. Да разгледаме следващият пример, в който дадена функция приема три параметъра (аргумента).

Параметрите при функциите са свойствата (имената), включени в дефиницията на функцията. А аргументите са реалните стойности, предадени (получени) на същата функцията.


Правила при параметрите

Дефиницията на една функция не уточнява типовете данни, които са подадени като параметри. В други програмни езици например при C# и Swift нещата стоят по коренно различен начин. Още JavaScript функциите не извършват проверка за типа данни, които са подадени през параметрите – аргументите. Също така функциите не проверяват броя на аргументите, които са получили.


Правила по подразбиране

Ако една функция се „извика“ с липсващи аргументи (или просто са по-малко от декларираните), липсващите стойности са undefined. Понякога това е приемливо, но понякога е по-добре да зададете стойност по подразбиране на параметъра:

Опитайте сами »

Ако се извиква функция с твърде много аргументи (повече от обявените), тези аргументи могат да бъдат достигнати с помощта на обекта на аргументите, който предстои да разгледаме.

Бележка: Ако параметъра y е дефиниран, изразът у || 0 връща y, понеже резултатът е true, в противен случай се връща 0, защото undefined се равнява на false.


Обектът съдържащ аргументите

Функциите в JavaScript имат вграденият обект, наречен обект с аргументитеarguments object. Когато една функцията се изпълнява JavaScript енджина създава този обект. Той съдържа масив със използваните аргументи. По този начин може да използвате функция, за да намерите най-високата стойност в списък с числа, както можем да видим в следващият пример.

Опитайте сами »

В следващият пример виждаме как можем да създадем функция, която да сумира всички входни стойности. Ако имате нужда може да си припомните урока за аритметичните оператори

Опитайте сами »

Аргументите се предават по стойност

Параметрите при извикване на функция, се явяват аргументи на функцията. Аргументите се предават по стойност, тоест функцията получава информация само за стойностите им, без позициите им. Ако една функция променя стойността на аргумент, то не се променя първоначалната му стойност(стойността на параметъра). Промените за даден аргумент не са видими (отразени) извън функцията, за която се отнасят.

Обектите се предават по референция

Много има да се учи относно този въпрос, но тук ще разгледаме накратко как стоят нещата в най-общи линии. В JavaScript референциите на обектите са реални стойнсоти. Поради това обектите се предават по референция. Ако една функция променя свойството на обект, тогава се променя първоначалната му стойност. Промени в свойствата на обектите са видими (отразени) извън функцията.

Вижте още