Jawaban:
Titik koma setelah deklarasi fungsi yang tidak diperlukan .
Tata bahasa a FunctionDeclaration
dijelaskan dalam spesifikasi sebagai berikut:
function Identifier ( FormalParameterListopt ) { FunctionBody }
Tidak ada titik koma secara tata bahasa yang diperlukan, tetapi mungkin bertanya-tanya mengapa?
Titik koma berfungsi untuk memisahkan pernyataan satu sama lain, dan a FunctionDeclaration
bukan pernyataan .
FunctionDeclarations
dievaluasi sebelum kode dimasukkan ke dalam eksekusi, mengangkat adalah kata yang umum digunakan untuk menjelaskan perilaku ini.
Istilah "pernyataan fungsi" dan "pernyataan fungsi" sering salah digunakan secara bergantian, karena tidak ada pernyataan fungsi yang dijelaskan dalam Spesifikasi Naskah ECMAS, namun ada beberapa implementasi yang menyertakan pernyataan fungsi dalam tata bahasa mereka, - terutama Mozilla - tapi sekali lagi ini tidak standar.
Namun titik koma selalu disarankan di tempat Anda menggunakan FunctionExpressions
, misalnya:
var myFn = function () {
//...
};
(function () {
//...
})();
Jika Anda menghilangkan tanda koma setelah fungsi pertama dalam contoh di atas, Anda akan mendapatkan hasil yang benar-benar tidak diinginkan:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
Fungsi pertama akan dieksekusi segera, karena tanda kurung di sekitar yang kedua, akan ditafsirkan sebagai Arguments
panggilan fungsi.
Rekomendasi kuliah:
FunctionDeclaration
vs FunctionExpression
)Saya menggunakannya setelah deklarasi fungsi-sebagai-variabel:
var f = function() { ... };
tetapi tidak setelah definisi gaya klasik:
function f() {
...
}
JS Lint adalah konvensi de-facto, dan ia mengatakan tidak ada titik koma setelah fungsi tubuh. Lihat bagian "Titik Koma" .
Tetap konsisten! Mereka tidak diperlukan, tetapi saya pribadi menggunakannya karena sebagian besar teknik minifikasi mengandalkan semi-colon (misalnya, Packer ).
Benar-benar hanya tergantung pada preferensi Anda. Saya suka mengakhiri baris kode dengan titik dua karena saya terbiasa dengan Java, C ++, C #, dll, jadi saya menggunakan standar yang sama untuk pengkodean dalam javascript.
Saya biasanya tidak mengakhiri deklarasi fungsi dalam tanda titik dua, tapi itu hanya preferensi saya.
Browser akan menjalankannya dengan cara apa pun, tetapi mungkin suatu hari nanti mereka akan datang dengan beberapa standar yang lebih ketat yang mengatur hal ini.
Contoh kode yang akan saya tulis:
function handleClickEvent(e)
{
// comment
var something = true; // line of code
if (something) // code block
{
doSomething(); // function call
}
}
Ini sebenarnya lebih dari masalah konvensi atau konsistensi.
Saya cukup yakin itu tidak menempatkan titik koma setelah setiap pernyataan memperlambat pengurai internal karena harus mencari tahu di mana akhir pernyataan itu. Saya berharap saya memiliki beberapa nomor berguna untuk Anda mengonfirmasi hal itu secara positif, tetapi mungkin Anda dapat mencari sendiri di Google. :)
Juga, ketika Anda mengompresi atau mengecilkan kode, kurangnya semi-titik dua dapat menyebabkan versi kecil dari skrip Anda yang tidak melakukan apa yang Anda inginkan karena semua ruang putih hilang.
Ketika saya mengecilkan skrip saya, saya menyadari bahwa saya perlu menggunakan titik koma untuk fungsi yang dimulai dengan tanda sama dengan. jika Anda mendefinisikan fungsi sebagai var, ya Anda harus menggunakan titik koma.
butuh titik koma
var x = function(){};
var x = new function(){};
this.x = function(){};
tidak perlu titik koma
function x(){}
SEDERHANA:
Ini adalah praktik yang baik untuk meninggalkan titik koma ;
setelah kurung fungsi berakhir. Mereka telah dianggap sebagai praktik terbaik selama bertahun-tahun.
Satu keuntungan dari selalu menggunakannya adalah jika Anda ingin memperkecil JavaScript Anda.
Sebagai mengecilkan Javascript, membantu mengurangi ukuran file sedikit.
Tetapi untuk praktik terbaik dan jawaban di atas, tidak disarankan untuk menggunakannya setelah tag fungsi.
Jika Anda TIDAK menggunakan tanda titik koma, dan jika Anda ingin memperkecil (seperti banyak pengembang ingin lakukan jika situs mereka melayani banyak JavaScript) Anda bisa mendapatkan semua jenis Kesalahan / Peringatan.
titik koma setelah suatu fungsi tidak perlu digunakan atau tidak, tidak menyebabkan kesalahan dalam program Anda. namun, jika Anda berencana untuk mengecilkan kode Anda, maka menggunakan titik koma setelah fungsi adalah ide yang bagus. katakan misalnya Anda memiliki kode seperti di bawah ini
//file one
var one=1;
var two=2;
function tryOne(){}
function trytwo(){}
dan
//file two
var one=1;
var two=2;
function tryOne(){};
function trytwo(){};
ketika Anda mengecilkan keduanya, Anda akan mendapatkan yang berikut sebagai output
//file one
var one=1;var two=2;function tryOne(){}
function trytwo(){}
dan
//file two
var one=1;var two=2;function tryOne(){};function trytwo(){};