A declaration ialah pernyataan fungsi bernama; an expression memberikan fungsi kepada pemboleh ubah. Perbezaan praktikal ialah hoisting.
js
();
() { ; }
();
expressed = () { ; };
A declaration ialah pernyataan fungsi bernama; an expression memberikan fungsi kepada pemboleh ubah. Perbezaan praktikal ialah hoisting.
();
() { ; }
();
expressed = () { ; };
Fungsi declarations diangkat dengan badannya, jadi seluruh fungsi wujud sebelum eksekusi mencapainya. A function expression hanyalah nilai yang diberikan kepada pemboleh ubah — pada titik panggilan awal, expressed masih undefined (dengan var) atau dalam TDZ (dengan 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 dibaca dengan baik untuk fungsi bernama peringkat atas dan mendapat manfaat daripada hoisting (anda boleh menentukannya selepas penggunaannya). Expressions diperlukan untuk fungsi anak panah, callback, IIFE, dan memberikan fungsi secara bersyarat. Fungsi anak panah sentiasa ungkapan.