4 Penyata JavaScript yang Anda Perlu Tahu
Kenyataan JavaScript memberi kita kuasa untuk melaksanakan pelbagai jenis logik dalam kod kami. JavaScript menyediakan kami dengan beberapa daripada mereka, semuanya mempunyai tujuan dan sintaksinya sendiri. Antara contoh yang paling terkenal, kita dapat mencari kenyataan ekspresi, pernyataan lelaran, pernyataan bersyarat, dan banyak lagi
Dalam jawatan hari ini kita akan lihat empat penyata JavaScript kurang anda mungkin tidak tahu sebelum ini, tetapi dapat memperdalam pengetahuan JavaScript anda, dan membolehkan anda menulis kod yang lebih baik.
1. Penyata Kosong
Di tempat mana-mana penyata JavaScript, anda boleh menambah pernyataan kosong, yang ditulis sebagai satu setengah kolon ;
. Apabila jurubahasa JavaScript menafsirkan pernyataan kosong, tiada kod dilaksanakan, oleh itu mereka boleh menjadi berguna Gantikan kenyataan sub-yang anda tidak mahu laksanakan.
Contohnya, anggap ada pemboleh ubah yang dipanggil litmus
dengan nilai lalai neutral
. Berdasarkan nilai pembolehubah lain yang dipanggil pH
, litmus
perubahan sama ada berasid
apabila pH < 7 or asas
apabila pH> 7.
Sekiranya nilai pH
ternyata tidak sah, ralat dibuang. Untuk keadaan seperti ini, kenyataan bersyarat berikut dikenakan:
var litmus = 'neutral'; var pH; jika (pH> 0 && pH<7) litmus = 'acidic'; else if(pH>7 && pH<15) litmus = 'basic'; else throw "Invalid pH value";
Bagaimanapun set pernyataan di atas membuang ralat apabila pH
Nilai adalah 7, yang tidak sepatutnya berlaku.
Bila pH
adalah 7, litmus
harus menyimpan nilai lalainya, iaitu neutral
. Oleh itu, untuk kes seperti ini, tambahkan keadaan apabila pH
adalah 7 dengan pernyataan kosong.
var litmus = 'neutral'; var pH; jika (pH> 0 && pH<7) litmus = 'acidic'; else if(pH===7) ; /* empty statement */ else if(pH>7 && pH<15) litmus = 'basic'; else throw "Invalid pH value";
Sekarang, bila pH
adalah 7, jurubahasa tidak melaksanakan apa-apa arahan, dan litmus
mengekalkan nilai asalnya, neutral
.
Kenyataan kosong juga boleh digunakan untuk mengisi array dengan bantuan untuk
gelung.
var ary = []; untuk (var i = 0; i < 5; ary[i++] = i) ; /* empty statement */ console.log(ary); // [1, 2, 3, 4, 5]
Biasanya, a untuk
Kenyataan gelung diikuti oleh sub-statement yang terdiri daripada satu atau pernyataan blok (yang disertakan dalam kurungan kurungan) untuk dilaksanakan. Dengan menggunakan pernyataan kosong sebagai pengganti pernyataan sub, jurubahasa tidak akan mempunyai apa-apa untuk melaksanakan selepas setiap gelung, jadi hanya gelung berlaku, dan keadaan gelung dapat dilaksanakan.
Dalam contoh di atas, ary [i ++] = i
melaksanakan untuk setiap lelaran gelung sebagai sebahagian daripada keadaan gelung, dan array ary
mendapat instantiated dengan nilai-nilai i
.
2. The debugger
Kenyataan
Dalam alat debugging, kita boleh tambah penanda dipanggil breakpoints kepada mana-mana baris dalam kod sumber kepada tandakan garisan dari mana alat debugger akan mula debug.
Dalam JavaScript, yang debugger
pernyataan berfungsi dengan cara yang sama seperti titik putus, kecuali bahawa ia ditambah ke kod sumber secara langsung, bukannya dalam alat. Mana-mana debugger berjalan akan hentikan pelaksanaan skrip apabila ia mencapai debugger
pernyataan untuk membantu anda menyahpepijat kod.
Ingat, penyahpepijatan akan dicetuskan hanya jika skrip berjalan dalam mod debugging, iaitu program debugging sudah berjalan selama pelaksanaan skrip. Sekiranya tiada program debugger semasa sedang mentafsirkannya debugger
pernyataan, jurubahasa akan meneruskan kerja seolah-olah tiada apa yang berlaku.
Sebagai ujian cepat, jalankan kod berikut di Codepen, sambil mengekalkan alat debugger penyemak imbas terbuka:
console.log ('tesing'); debugger; console.log ('penyahataan debug');
Anda akan melihat titik putus selain dari debugger
pernyataan seperti yang ditunjukkan di bawah di alat debugger penyemak imbas.
3. Penyata yang Dilabel
Dalam JavaScript, anda boleh menambah label kepada kenyataan tertentu juga. Dengan berbuat demikian, anda boleh kemudian melompat ke kenyataan berlabel menggunakan labelnya dalam kod anda, jenis seperti yang pergi ke
pernyataan berfungsi dalam beberapa bahasa lain.
Kenyataan yang dilabel hanya boleh digunakan bersama dengan pecah
dan teruskan
pernyataan, seperti dalam JavaScript tidak literal pergi ke
pernyataan.
Kedua-duanya pecah
dan teruskan
hanya boleh digunakan dalam pernyataan gelung, seperti untuk
gelung (dengan satu pengecualian, pecah
boleh digunakan di dalam suis
pernyataan juga). Jadi, kita boleh melabelkan gelung, dan gunakan pecah
dan teruskan
untuk mengawal pelaksanaan mereka.
The sintaksis kenyataan berlabel adalah mudah, anda hanya perlu menambah nama label dengan kolon berikut, kerana anda dapat melihatnya dalam contoh di bawah, di mana gelung
adalah nama label yang kami tambah kepada untuk
gelung.
gelung: untuk (var i = 0; i<5; i++) if(i===2) continue loop; console.log(i); // 0, 1, 3, 4
Apabila nilai i
adalah 2, pelaksanaan melompat kembali ke gelung bukannya meneruskan dan dengan itu menghalang output konsol “2”.
Sekarang mari lihat contoh lain dengan pecah
pernyataan. Hanya gantikan teruskan
kata kunci dengan pecah
dalam contoh di atas, dan anda akan melihat bahawa bukannya melompat kembali ke gelung seperti yang dilakukannya teruskan
, gelung berakhir / pecah sama sekali.
gelung: untuk (var i = 0; i<5; i++) if(i===2) break loop; console.log(i); // 0, 1
Contoh-contoh di atas agak mudah supaya anda dapat dengan cepat memahami bagaimana kenyataan berlabel berfungsi, tetapi dalam pengekalan kehidupan sebenar, label lebih kerap digunakan dalam gelung gabungan, apabila perlu membezakan gelung yang berbeza, seperti dalam contoh berikut:
gelung: untuk (var i = 0; i<4; i++) for(var j=0; j<2; j++) if(i===2 && j===1) break loop; console.log(i+"-"+j);
Di sini, gelung luar rehat pada nilai 2 untuk pembolehubah i
dan pada 1 untuk j
, dan konsol mengembalikan output berikut:
0-0 0-1 1-0 1-1 2-0
4. The dengan
Kenyataan
Apabila penterjemah JS terdapat nama yang tidak layak yang tidak menentukan objek atau fungsi mana yang berkaitan dengannya mencari rantai skop bagi mana-mana objek atau fungsi yang sesuai panggilan boleh merujuk kepada.
Dengan menggunakan dengan
kenyataan, kita boleh tambah objek ke atas rantaian skop, dan nyatakan objek yang berkaitan dengannya.
Dalam contoh berikut, anda dapat melihat bahawa sifat-sifat tersebut orang
objek dipanggil menggunakan nama mereka sendiri di dalam dengan
pernyataan.
var person = firstName: "John", lastName: "Doe", umur: "18", negara: "Greenland"; dengan (orang) console.log ("Hai, nama saya" + firstName + "" + lastName + ". Saya berusia" + umur + "dan tinggal di" + negara + "."); // "Hai, nama saya ialah John Doe, saya berusia 18 tahun, dan tinggal di Greenland."
Bandingkan bagaimana kod di atas akan kelihatan seperti tanpa menggunakan dengan
pernyataan:
var person = firstName: "John", lastName: "Doe", umur: "18", negara: "Greenland"; console.log ("Hai, nama saya" + person.firstName + "" + person.lastName + ". Saya" + person.age + "tahun, dan tinggal di" + person.country + "." ); // "Hai, nama saya ialah John Doe, saya berusia 18 tahun, dan tinggal di Greenland."
Anda boleh lihat, yang dengan
Kenyataan boleh menjadi pintasan hebat jika anda bekerja dengan banyak sifat objek yang sama.
Walau bagaimanapun, ambil perhatian bahawa menggunakan dengan
pernyataan dalam mod yang ketat tidak dibenarkan, kerana ia boleh menyebabkan kekeliruan skop.
Juga, ia hanya dinasihatkan untuk menggunakan dengan
pernyataan jika pernyataan dalamannya menggunakan objek yang berkaitan dengan dengan
pernyataan, jika tidak jurubahasa akan membuang masa memandang ke objek yang disebut oleh dengan
pertama, untuk semua nama harta yang tidak layak ia kemudiannya dapati di dalamnya dengan
blok.