⊗jsPmFTFENIn 233 of 505 menu

Нюансҳои ифодаҳои функсионалӣ дар JavaScript

Номи Function Expression бе сабаб дода нашудааст. Он воқеан ин маъноро дорад - ки чунин функсияҳо қисми ягон ифода мебошанд.

Масалан, мо метавонем ягон сатрро бо функсияи бе ном ҷамъ кунем:

let str = 'str' + function() {return 3;}; console.log(str); // 'strfunction() {return 3;}'-ро чоп мекунад

Чаро мо чунин натиҷаи аҷибро мебинем, ва рақами 3 на? Зеро иловаи дуюм - ин натиҷаи кори функсия нест, балки коди ибтидоии он аст (мо он функсияро даъват накардем, танҳо навистем).

Яъне номи ифодаи функсионалӣ маънои онро дорад, ки чунин функсия дар ягон ифода иштирок мекунад.

Ба тағирдиҳанда таъин кардан низ ифода аст:

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

Ҳамчунин, барои намуна, метавон функсияро ҳамчун параметр ба console.log дод ва он коди ибтидоии онро ба консол чоп мекунад - ин ҳам ифода ҳисобида мешавад:

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

Чаро ин муҳим аст: зеро фарқияти Function Declaration ва Function Expression комилан дар он нест, ки якум бо ном сохта мешавад, ва дуюм аз ибтидо ном надорад. Ин чунин нест.

Мисол. Ин ҷо мо функсияе бе ном дорем, аммо дар ҳеҷ ифодае иштирок намекунад (яъне бо он ҳеҷ амале иҷро намешавад, ба таври содда гуфта):

/* Ин функсия Function Declaration хоҳад буд, аммо бо хатои синтаксӣ: */ function() { console.log('!'); }

Чунин код умуман хато медиҳад! Чаро: зеро функсия дар ҳеҷ ифодае иштирок намекунад, браузер онро Function Declaration ҳисоб мекунад, аммо номи онро наёфта ва хато медиҳад.

Барои нест кардани хато, зарур аст функсияро ба қисми ягон ифода табдил диҳем. Масалан, пеш аз он амали +-ро нависем:

+function() { // чунин код дуруст аст console.log('!'); };

Чӣ тавр кор мекунад: худи амали + ҳеҷ чиз намекунад, ин ҳамон тавр аст, ки ба ҷои рақами 3 рақами +3-ро нависем - иҷозат дода шудааст, аммо ҳеҷ чизро тағир намедиҳад.

Аммо дар ҳолати функсия - тағир медиҳад. Акнун функсияи мо дигар танҳо навишта нашудааст, балки дар ифода иштирок мекунад. Аз ин сабаб дигар хато нест. Натиҷаи иҷрои функсия ҳам нест, зеро мо онро танҳо навиштем, вале даъват накардем.

Ба ҷои + метавон ҳар чизеро навишт. Масалан:

-function() { // чунин код дуруст аст console.log('!'); }; !function() { // чунин код дуруст аст console.log('!'); };

Ҳамчунин метавон функсияи худро дар қавсҳои давраӣ гирифт, дар ин ҳолат он низ ба ифодаи функсионалӣ табдил меёбад:

(function() { // чунин код дуруст аст console.log('!'); });

Муайян кунед, ки функсияи пешниҳодшуда Function Declaration аст ё Function Expression:

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

Муайян кунед, ки функсияи пешниҳодшуда Function Declaration аст ё Function Expression:

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

Муайян кунед, ки функсияи пешниҳодшуда Function Declaration аст ё Function Expression:

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

Муайян кунед, ки функсияи пешниҳодшуда Function Declaration аст ё Function Expression:

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

Муайян кунед, ки функсияи пешниҳодшуда Function Declaration аст ё Function Expression:

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

Муайян кунед, ки функсияи пешниҳодшуда Function Declaration аст ё Function Expression:

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

Муайян кунед, ки функсияи пешниҳодшуда Function Declaration аст ё Function Expression:

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

Муайян кунед, ки функсияи пешниҳодшуда Function Declaration аст ё Function Expression:

console.log( function() { console.log('!'); } );
Тоҷикӣ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČ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
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан