ประกาศ คือคำสั่งฟังก์ชันที่ตั้งชื่อ นิพจน์ กำหนดฟังก์ชันให้กับตัวแปร ความแตกต่างในทางปฏิบัติคือ hoisting
js
// Declaration — fully hoisted, callable before its line
();
() { ; }
();
expressed = () { ; };
ประกาศ คือคำสั่งฟังก์ชันที่ตั้งชื่อ นิพจน์ กำหนดฟังก์ชันให้กับตัวแปร ความแตกต่างในทางปฏิบัติคือ hoisting
// Declaration — fully hoisted, callable before its line
();
() { ; }
();
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 จะเป็นนิพจน์เสมอ