⊗jsPmFTFENIn 233 of 505 menu

Nuansa Ekspresi Fungsi dalam JavaScript

Nama Function Expression diberikan bukan tanpa alasan. Itu benar-benar berarti itu - bahwa fungsi semacam ini merupakan bagian dari suatu ekspresi.

Misalnya, kita dapat menambahkan string tertentu dan fungsi tanpa nama:

let str = 'str' + function() {return 3;}; console.log(str); // akan menampilkan 'strfunction() {return 3;}'

Mengapa kita melihat hasil yang aneh seperti itu, bukan angka 3? Karena suku kedua - ini bukan hasil kerja fungsi, melainkan kode sumbernya (lagipula kita tidak memanggil fungsi ini, hanya menuliskannya).

Artinya nama ekspresi fungsi menunjukkan bahwa fungsi seperti itu mengambil bagian dalam suatu ekspresi.

Penugasan ke variabel juga merupakan ekspresi:

let func = function() { console.log('!'); };

Kita juga bisa, misalnya, meneruskan fungsi sebagai parameter ke console.log dan itu akan menampilkan kode sumbernya ke konsol - ini juga akan dianggap sebagai ekspresi:

console.log(function() {return 3;});

Mengapa ini penting: karena perbedaan Function Declaration dan Function Expression sama sekali bukan terletak pada fungsi pertama dibuat dengan nama, sedangkan fungsi kedua awalnya tidak memiliki nama. Itu tidak benar.

Contoh. Ini adalah fungsi tanpa nama, tetapi tidak berpartisipasi dalam ekspresi apa pun (artinya tidak ada tindakan yang dilakukan padanya, secara sederhana):

/* Fungsi ini akan menjadi Function Declaration, tetapi dengan kesalahan sintaks: */ function() { console.log('!'); }

Kode seperti itu akan menghasilkan error! Mengapa: karena fungsi tidak berpartisipasi dalam ekspresi apa pun, maka browser menganggapnya sebagai Function Declaration, tetapi tidak menemukan namanya dan menghasilkan error.

Agar error hilang, kita perlu membuat fungsi menjadi bagian dari suatu ekspresi. Misalnya, tuliskan operasi + di depannya:

+function() { // kode seperti ini benar console.log('!'); };

Bagaimana cara kerjanya: operasi + itu sendiri tidak melakukan apa-apa, ini sama seperti menulis angka +3 sebagai ganti angka 3 - diperbolehkan, tetapi tidak mengubah apa pun.

Tetapi dalam kasus fungsi - ini mengubah. Sekarang fungsi kita tidak hanya ditulis, tetapi berpartisipasi dalam ekspresi. Itulah sebabnya sekarang tidak akan ada error. Hasil eksekusi fungsi juga tidak akan ada, karena kita hanya menuliskannya, tetapi tidak memanggilnya.

Sebagai ganti + kita bisa menulis apa saja. Misalnya:

-function() { // kode seperti ini benar console.log('!'); }; !function() { // kode seperti ini benar console.log('!'); };

Kita juga bisa menempatkan fungsi kita dalam tanda kurung, dalam hal ini juga akan menjadi ekspresi fungsi:

(function() { // kode seperti ini benar console.log('!'); });

Tentukan apakah fungsi yang ditampilkan adalah Function Declaration atau Function Expression:

function func() { console.log('!'); }

Tentukan apakah fungsi yang ditampilkan adalah Function Declaration atau Function Expression:

let func = function() { console.log('!'); }

Tentukan apakah fungsi yang ditampilkan adalah Function Declaration atau Function Expression:

+function() { console.log('!'); }

Tentukan apakah fungsi yang ditampilkan adalah Function Declaration atau Function Expression:

!function func() { console.log('!'); }

Tentukan apakah fungsi yang ditampilkan adalah Function Declaration atau Function Expression:

-function func() { console.log('!'); }

Tentukan apakah fungsi yang ditampilkan adalah Function Declaration atau Function Expression:

1 + function func() { console.log('!'); }

Tentukan apakah fungsi yang ditampilkan adalah Function Declaration atau Function Expression:

(function func() { console.log('!'); })

Tentukan apakah fungsi yang ditampilkan adalah Function Declaration atau Function Expression:

console.log( function() { console.log('!'); } );
Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak