⊗jsPmFTFENIn 233 of 505 menu

JavaScript-də Funksiya İfadələrinin Nüansları

Funksiya İfadəsinin adı boş yerə verilməyib. Bu, həqiqətən də deməkdir ki, belə funksiyalar hər hansı bir ifadənin hissəsidir.

Məsələn, biz hansısa bir sətri və adsız bir funksiyanı toplaya bilərik:

let str = 'str' + function() {return 3;}; console.log(str); // çıxaracaq: 'strfunction() {return 3;}'

Niyə biz 3 rəqəmi əvəzinə belə qəribə nəticə görürük? Çünki ikinci toplanan - bu funksiyanın işləmə nəticəsi deyil, onun ilkin kodudur (axı biz bu funksiyanı çağırmadıq, sadəcə yazdıq).

Yəni funksiya ifadəsi adlandırılması o deməkdir ki, belə bir funksiya hər hansı bir ifadədə iştirak edir.

Dəyişənə mənimsətmə də ifadədir:

let func = function() { console.log('!'); };

Həmçinin, məsələn, funksiyanı console.log-a parametr kimi ötürmək olar və o, onun ilkin kodunu konsola çıxaracaq - bu da ifadə sayılacaq:

console.log(function() {return 3;});

Bu niyə vacibdir: çünki Funksiya Deklarasiyası (Function Declaration) ilə Funksiya İfadəsinin (Function Expression) fərqi heç də o deyil ki, birinci funksiya adla yaradılır, ikincisinin isə əvvəldən adı yoxdur. Bu, belə deyil.

Nümunə. Budur bizim adsız funksiyamız, lakin eyni zamanda heç bir ifadədə iştirak etmir (yəni onunla heç bir hərəkət edilmir, sadə dillə desək):

/* Bu funksiya Funksiya Deklarasiyası olacaq, lakin sintaktik xəta ilə: */ function() { console.log('!'); }

Belə bir kod ümumiyyətlə xəta verəcək! Niyə: belə ki, funksiya heç bir ifadədə iştirak etmir, brauzer onu Funksiya Deklarasiyası hesab edir, lakin onun adını tapmır və xəta verir.

Xətanın aradan qalxması üçün funksiyanı hər hansı bir ifadənin hissəsi etmək lazımdır. Məsələn, onun qarşısında + əməliyyatı yazaq:

+function() { // belə bir kod düzgündür console.log('!'); };

Bu necə işləyir: + əməliyyatı özü heç nə etmir, bu 3 əvəzinə +3 yazmaq kimidir - icazə verilir, lakin heç nəyi dəyişmir.

Lakin funksiya ilə əlaqədar halda - dəyişir. İndi bizim funksiyamız artıq sadəcə yazılmır, ifadədə iştirak edir. Ona görə də indi xəta olmayacaq. Funksiyanın icra nəticəsi də olmayacaq, axı biz onu sadəcə yazdıq, lakin çağırmadıq.

+ əvəzinə istənilən şeyi yazmaq olar. Məsələn:

-function() { // belə bir kod düzgündür console.log('!'); }; !function() { // belə bir kod düzgündür console.log('!'); };

Həmçinin funksiyanı dəyirmi mötərizələrə də almaq olar, bu halda o da funksiya ifadəsinə çevriləcək:

(function() { // belə bir kod düzgündür console.log('!'); });

Təqdim olunmuş funksiyanın Funksiya Deklarasiyası və ya Funksiya İfadəsi olduğunu müəyyən edin:

function func() { console.log('!'); }

Təqdim olunmuş funksiyanın Funksiya Deklarasiyası və ya Funksiya İfadəsi olduğunu müəyyən edin:

let func = function() { console.log('!'); }

Təqdim olunmuş funksiyanın Funksiya Deklarasiyası və ya Funksiya İfadəsi olduğunu müəyyən edin:

+function() { console.log('!'); }

Təqdim olunmuş funksiyanın Funksiya Deklarasiyası və ya Funksiya İfadəsi olduğunu müəyyən edin:

!function func() { console.log('!'); }

Təqdim olunmuş funksiyanın Funksiya Deklarasiyası və ya Funksiya İfadəsi olduğunu müəyyən edin:

-function func() { console.log('!'); }

Təqdim olunmuş funksiyanın Funksiya Deklarasiyası və ya Funksiya İfadəsi olduğunu müəyyən edin:

1 + function func() { console.log('!'); }

Təqdim olunmuş funksiyanın Funksiya Deklarasiyası və ya Funksiya İfadəsi olduğunu müəyyən edin:

(function func() { console.log('!'); })

Təqdim olunmuş funksiyanın Funksiya Deklarasiyası və ya Funksiya İfadəsi olduğunu müəyyən edin:

console.log( function() { console.log('!'); } );
Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et