I've melihat pengembang yang berbeda termasuk titik koma setelah fungsi di javascript dan beberapa haven't. Yang terbaik adalah praktek?
function weLikeSemiColons(arg) {
// bunch of code
};
atau
function unnecessary(arg) {
// bunch of code
}
Tanda koma setelah deklarasi fungsi adalah tidak diperlukan.
Tata FunctionDeclaration
dijelaskan dalam spesifikasi seperti ini:
function Identifier ( FormalParameterListopt ) { FunctionBody }
Ada's tidak ada titik koma tata bahasa yang diperlukan, tetapi mungkin bertanya-tanya mengapa?
Titik koma berfungsi untuk memisahkan laporan dari satu sama lain, dan FunctionDeclaration
tidak pernyataan.
FunctionDeclarations
yang dievaluasi sebelum kode masuk ke eksekusi, hoisting adalah kata umum digunakan untuk menjelaskan perilaku ini.
Syarat "deklarasi fungsi" dan "fungsi pernyataan" yang sering salah digunakan secara bergantian, karena tidak ada fungsi pernyataan yang dijelaskan dalam ECMAScript Spesifikasi, namun ada beberapa implementasi yang mencakup fungsi pernyataan dalam tata bahasa mereka, -terutama Mozilla - tapi sekali lagi ini adalah non-standar.
Namun titik koma selalu dianjurkan jika anda menggunakan FunctionExpressions
, misalnya:
var myFn = function () {
//...
};
(function () {
//...
})();
Jika anda menghilangkan koma setelah fungsi pertama dalam contoh di atas, anda akan mendapatkan benar-benar hasil yang tidak diinginkan:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
Fungsi pertama yang akan segera dieksekusi, karena tanda kurung di sekitar kedua, akan ditafsirkan sebagai Argumen
dari fungsi panggilan.
Direkomendasikan kuliah:
FunctionDeclaration
vs FunctionExpression
)JS Lint adalah de-facto konvensi, dan ia mengatakan tidak ada titik koma setelah fungsi tubuh. Melihat "titik Koma" bagian.
Benar-benar hanya tergantung pada preferensi anda. Saya suka ke akhir baris kode dengan semi kolon karena saya'm digunakan untuk Java, C++, C#, dll, jadi saya menggunakan standar yang sama untuk kode dalam javascript.
Saya don't biasanya end deklarasi fungsi di semi kolon meskipun, tapi itu hanya preferensi saya.
Browser akan menjalankan itu dengan cara baik, tapi mungkin beberapa hari mereka'll datang dengan beberapa standar 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
}
}
It's benar-benar lebih dari sebuah isu konvensi atau konsistensi.
I'm cukup yakin bahwa tidak menempatkan tanda koma setelah setiap pernyataan memperlambat internal parser karena itu untuk mengetahui di mana akhir dari pernyataan tersebut. Aku berharap aku punya sederetan angka untuk anda untuk secara positif mengkonfirmasi itu, tapi mungkin anda bisa google sendiri. :)
Juga, ketika anda menekan atau meminimalisasi kode, kurangnya semi-kolon dapat menyebabkan versi minified script anda tidak't melakukan apa yang anda inginkan karena semua ruang putih hilang.
Ketika saya minified script saya saya menyadari bahwa saya perlu menggunakan titik koma untuk fungsi-fungsi yang dimulai dengan yang sama dengan mark. jika anda mendefinisikan fungsi sebagai var, ya anda perlu menggunakan titik koma.
perlu koma
var x = function(){};
var x = new function(){};
this.x = function(){};
tidak perlu koma
function x(){}
SEDERHANA:
Ini adalah praktik yang baik untuk meninggalkan titik koma ;
setelah akhir dari fungsi kawat gigi. Mereka telah dianggap sebagai praktek terbaik selama bertahun-tahun.
Salah satu keuntungan dari selalu menggunakan mereka jika anda ingin mengecilkan JavaScript anda.
Sebagai minifying Javascript, membantu untuk mengurangi ukuran file sedikit.
Tapi untuk praktek terbaik dan jawaban di atas, tidak dianjurkan untuk menggunakannya setelah fungsi tag.
Jika anda DON'T menggunakan titik koma, dan jika anda ingin mengecilkan (seperti banyak pengembang ingin lakukan jika situs mereka menyajikan banyak JavaScript) anda bisa mendapatkan segala macam Kesalahan/Peringatan.
//file satu var satu=1; var dua=2; fungsi tryOne(){} fungsi trytwo(){}
dan
//file dua var satu=1; var dua=2; fungsi tryOne(){}; fungsi trytwo(){};
ketika anda mengecilkan kedua, anda akan mendapatkan sebagai berikut output
Perhatikan bahwa komentar yang hanya untuk ilustrasi //file satu var satu=1;var dua=2;fungsi tryOne(){} fungsi trytwo(){}
dan
//file dua var satu=1;var dua=2;fungsi tryOne(){};function trytwo(){};