Di beberapa perpustakaan JavaScript saya melihat notasi ini di awal:
/**
* Library XYZ
*/
;(function () {
// ... and so on
Sementara saya sangat nyaman dengan sintaks "fungsi yang segera dieksekusi"
(function(){...})()
Saya bertanya-tanya untuk apa tanda koma itu. Yang bisa saya pikirkan hanyalah asuransi. Artinya, jika perpustakaan tertanam dalam kode lain, kereta, itu berfungsi sebagai "pernyataan terakhir berakhir di sini" jenis terbaru dari benjolan kecepatan.
Apakah ada fungsi lainnya?
javascript
syntax
Boldewyn
sumber
sumber
Jawaban:
Ini memungkinkan Anda untuk menggabungkan beberapa file JavaScript dengan aman menjadi satu, untuk menyajikannya lebih cepat sebagai satu permintaan HTTP.
sumber
(function(){...})()(function(){...})()
.Jawaban terbaik sebenarnya diberikan dalam pertanyaan, jadi saya hanya akan menuliskannya di sini untuk kejelasan:
Yang terdepan
;
di depan ekspresi fungsi yang segera dipanggil ada untuk mencegah kesalahan saat menambahkan file selama penggabungan file yang berisi ekspresi yang tidak diakhiri dengan benar dengan a;
.Praktik terbaik adalah menghentikan ekspresi Anda dengan titik koma, tetapi juga menggunakan titik koma sebagai pengamanan.
sumber
"\n"
dengan";\n"
tidak masuk akal.Sumber:
JavaScript: Panduan Definitif, edisi ke-6
sumber
Ini disebut sebagai titik koma terkemuka.
Tujuan utamanya adalah untuk melindungi diri dari kode sebelumnya yang ditutup secara tidak benar, yang dapat menyebabkan masalah. Tanda titik koma akan mencegah hal ini terjadi. Jika kode sebelumnya ditutup tidak semestinya maka titik koma kami akan memperbaikinya. Jika ditutup dengan benar maka titik koma kami tidak akan berbahaya dan tidak akan ada efek samping.
sumber
Jawaban satu baris adalah menggabungkan beberapa file JavaScript dengan aman. Menggunakan titik koma tidak menimbulkan masalah.
Misalkan Anda memiliki beberapa fungsi:
IIFE 1
IIFE 2
Pada penggabungan mungkin terlihat seperti:
Tetapi jika Anda menambahkan titik koma sebelum fungsi itu akan terlihat seperti:
Jadi dengan menambahkan a
;
, berhati-hatilah jika ekspresi apa pun tidak diakhiri dengan benar.Contoh 2
Asumsikan Anda memiliki file JavaScript dengan variabel:
File JavaScript lain dengan beberapa fungsi:
Sekarang pada penggabungan akan terlihat seperti
Dengan titik koma, akan terlihat seperti:
sumber
Ada baiknya saat Anda memperkecil kode JavaScript. Ini mencegah kesalahan sintaks yang tidak terduga.
sumber