Perbedaan antara var functionName = function() {} vs function functionName() {}

Perbedaan antara var functionName = function() {} vs function functionName() {}

iis

September 7, 2019

Perbedaannya adalah bahwa functionOne adalah ekspresi fungsi dan hanya ditentukan ketika garis itu tercapai, sedangkan functionTwo adalah deklarasi fungsi dan didefinisikan segera setelah fungsi atau skrip sekitarnya dijalankan (karena mengangkat).

javascript-illustration

Misalnya, ekspresi fungsi:

// TypeError: functionOne is not a function
functionOne();
var functionOne = function() {
console.log("Hello!");
};

Dan, deklarasi fungsi:

// Outputs: "Hello!"
functionTwo();
function functionTwo() {
console.log("Hello!");
}

Ini juga berarti Anda tidak dapat menentukan fungsi dengan menggunakan deklarasi fungsi:

if (test) {
// Error or misbehavior
function functionThree() { doSomething(); }
}

Di atas sebenarnya mendefinisikan functionThree terlepas dari nilai tes – kecuali jika berlaku ketat, dalam hal ini hanya menimbulkan kesalahan.