Ekspresi di Kiri Fungsi dalam JavaScript
Mari kita perhatikan kode berikut:
+function func() {
console.log('!');
}
Seperti yang sudah Anda ketahui, fungsi ini merupakan ekspresi fungsional, meskipun ia memiliki nama (kita sudah mengetahui bahwa keberadaan nama bukanlah kriteria). Hapus tanda plus ini - dan kita akan mendapatkan Function Declaration:
function func() {
console.log('!');
}
Mari letakkan + di baris sebelum
fungsi - ia akan kembali menjadi Function Expression:
+
function func() {
console.log('!');
}
Sekarang setelah tanda plus, mari letakkan angka 1
dan titik koma - fungsi kita akan menjadi Function
Declaration:
+1;
function func() {
console.log('!');
}
Mengapa demikian: karena pada baris pertama tertulis satu perintah yang sudah lengkap, ditutup dengan titik koma. Oleh karena itu, perintah ini tidak mempengaruhi fungsi kita sama sekali.
Sebenarnya titik koma bisa dihapus, karena dalam JavaScript titik koma tidak wajib - fungsinya tetap akan menjadi Function Declaration:
+1
function func() {
console.log('!');
}
Tapi jika setelah 1 kita tambahkan lagi satu
tanda plus, maka fungsi akan menjadi Function Expression:
+1+
function func() {
console.log('!');
}
Mengapa demikian: karena pada baris pertama terdapat ekspresi yang belum selesai - ada tanda plus dan setelahnya tidak ada apa-apa. Oleh karena itu, interpreter JavaScript beranggapan bahwa tanda plus ini berkaitan dengan baris di bawahnya, yaitu dengan fungsi kita.
Jika pada baris pertama terdapat ekspresi yang sudah lengkap, maka JavaScript secara otomatis akan menempatkan titik koma padanya dan ekspresi ini tidak mempengaruhi fungsi kita sama sekali.
Tentukan apakah fungsi yang ditampilkan merupakan Function Declaration atau Function Expression:
-
function func() {
console.log('!');
}
Tentukan apakah fungsi yang ditampilkan merupakan Function Declaration atau Function Expression:
-1;
function func() {
console.log('!');
}
Tentukan apakah fungsi yang ditampilkan merupakan Function Declaration atau Function Expression:
-1
function func() {
console.log('!');
}
Tentukan apakah fungsi yang ditampilkan merupakan Function Declaration atau Function Expression:
1
function func() {
console.log('!');
}
Tentukan apakah fungsi yang ditampilkan merupakan Function Declaration atau Function Expression:
-1-
function func() {
console.log('!');
}