Bildirim adlandırılmış bir fonksiyon deyimidir; ifade bir fonksiyonu bir değişkene atar. Pratik fark hoisting mekanizmasıdır.
js
();
() { ; }
();
expressed = () { ; };
Bildirim adlandırılmış bir fonksiyon deyimidir; ifade bir fonksiyonu bir değişkene atar. Pratik fark hoisting mekanizmasıdır.
();
() { ; }
();
expressed = () { ; };
Fonksiyon bildirimleri gövdesiyle birlikte hoisted olur, bu nedenle yürütme bunlara ulaşmadan önce tüm fonksiyon bulunur. Fonksiyon ifadesi, bir değişkene atanan sadece bir değerdir — erken çağrı noktasında, expressed hala undefined (var ile) veya TDZ içinde (let/const ile).
// 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) { ... }
Bildirimleri üst düzey adlandırılmış fonksiyonlar için iyi okunur ve hoisting avantajından yararlanır (bunları kullanımlarından sonra tanımlayabilirsiniz). İfadeler, arrow functions, geri çağrılar, IIFEs ve koşullu olarak fonksiyon ataması için gereklidir. Arrow functions her zaman ifadelerdir.