డిక్లరేషన్ అనేది పేరుపెట్టిన ఫంక్షన్ స్టేట్మెంట్; ఎక్సప్రెషన్ ఒక ఫంక్షన్ను వేరియబుల్కు కేటాయిస్తుంది. ప్రాక్టికల్ తేడా hoisting.
js
();
() { ; }
();
expressed = () { ; };
డిక్లరేషన్ అనేది పేరుపెట్టిన ఫంక్షన్ స్టేట్మెంట్; ఎక్సప్రెషన్ ఒక ఫంక్షన్ను వేరియబుల్కు కేటాయిస్తుంది. ప్రాక్టికల్ తేడా hoisting.
();
() { ; }
();
expressed = () { ; };
ఫంక్షన్ డిక్లరేషన్లు వాటి బాడీతో hoisted అవుతాయి, కాబట్టి మొత్తం ఫంక్షన్ ఎక్జిక్యూషన్ దానిని చేరుకోవడానికి ముందే ఉంది. ఫంక్షన్ ఎక్సప్రెషన్ కేవలం ఒక వేరియబుల్కు కేటాయించిన విలువ — ప్రారంభ కాల్ చేసిన పాయింట్లో, 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) { ... }
డిక్లరేషన్లు టాప్-లెవల్ నామవంత ఫంక్షన్ల కోసం చక్కగా చదువుకుంటాయి మరియు hoisting నుండి ప్రయోజనం పొందుతాయి (మీరు వాటిని వాటి ఉపయోగం తర్వాత నిర్వచించవచ్చు). arrow functions, callbacks, IIFEs, మరియు షరతుతో ఫంక్షన్లను కేటాయించడానికి ఎక్సప్రెషన్లు అవసరం. arrow functions ఎల్లప్పుడూ ఎక్సప్రెషన్లు.