A declaration არის დასახელებული ფუნქციის დებულება; an expression ფუნქციას ენიჭება ცვლადს. პრაქტიკული განსხვავება არის hoisting.
js
();
() { ; }
();
expressed = () { ; };
A declaration არის დასახელებული ფუნქციის დებულება; an expression ფუნქციას ენიჭება ცვლადს. პრაქტიკული განსხვავება არის hoisting.
();
() { ; }
();
expressed = () { ; };
Funcions declarations ტიპდება მათი სხეულით, ამიტომ მთელი ფუნქცია არსებობს სანამ შესრულება მას მიაღწევს. A function expression მხოლოდ მნიშვნელობაა, რომელიც ენიჭება ცვლადს — ადრეული გამოძახების წერტილში, expressed ჯერ კიდევ undefined-ია (var-ით) ან TDZ-ში (let/const-ით).
// expression — for callbacks, conditional definitions, arrow functions
const handler = () => doThing();
const fn = condition ? a : b;
arr.map(x => x * 2);
// declaration — clear, hoisted top-level functions
function calculateTotal(items) { ... }
Declarations კარგად იკითხება top-level დასახელებული ფუნქციებისთვის და სარგებელი ნახულობს hoisting-ისგან (თქვენ შეგიძლიათ მათი განმარტება მათი გამოყენების შემდეგ). Expressions აუცილებელია arrow functions, callbacks, IIFEs და ფუნქციების პირობითი დანიჭების თვის. Arrow functions ყოველთვის expressions არიან.