Rumah  >  Artikel  >  hujung hadapan web  >  5 tabiat buruk semasa menulis kod JavaScript, lihat jika anda ditembak?

5 tabiat buruk semasa menulis kod JavaScript, lihat jika anda ditembak?

PHPz
PHPzasal
2016-05-16 16:32:051457semak imbas

Artikel ini terutamanya memperkenalkan 5 tabiat buruk menulis kod JavaScript. Lihat jika anda tertangkap? , bab ini menunjukkan isu seperti kegagalan anda menggunakan ruang nama, takrifan berubah, skop pembolehubah Javascript, orientasi objek Javascript, kata kunci baharu, dll. Rakan yang memerlukannya boleh merujuknya.

Javascript mempunyai reputasi buruk di Internet, tetapi sukar untuk mencari bahasa lain yang dinamik, digunakan secara meluas dan berakar umbi dalam kehidupan kita. Ambang pembelajarannya yang rendah membuatkan ramai orang memanggilnya sebagai bahasa skrip prasekolah Satu lagi perkara yang membuatkan orang ketawa ialah konsep bahasa dinamik menggunakan jenis data statik standard tinggi. Sebenarnya, anda dan Javascript berada di pihak yang salah, dan kini, anda membuat Javascript sangat marah. Berikut ialah lima sebab mengapa kemahiran JavaScript anda meleset.

1. Anda tidak menggunakan ruang nama.

Adakah anda masih ingat apabila guru anda di kolej memberitahu anda untuk tidak menggunakan pembolehubah global dalam kerja rumah anda? Penggunaan pembolehubah global dalam Javascript tidak terkecuali. Jika anda tidak berhati-hati, laman web akan menjadi huru-hara, dipenuhi dengan kekacauan skrip dan perpustakaan skrip yang saling melanggar dari semua sudut Internet. Jika anda menamakan variable loader(), anda meminta masalah. Jika anda membebankan fungsi tanpa disedari, Javascript tidak akan mengingatkan anda sama sekali. Anda juga memanggilnya sebagai bahasa pengaturcaraan prasekolah, ingat? Apa yang saya katakan ialah, anda perlu tahu apa yang berlaku selepas anda melakukan ini.

function derp(){ alert(“one”); }
function derp(){ alert(“two”); }
derp();

"dua", jawapannya ialah "dua". Ia tidak semestinya begini, boleh jadi "satu". Jadi, mudah untuk meletakkan semua kod anda dalam ruang namanya sendiri. Berikut ialah cara mudah untuk menentukan ruang nama anda sendiri.

var foospace={};
foospace.derp=function(){ alert(“one”); }
function derp(){ alert(“two”); }
foospace.derp();

2 Anda sedang melakukan sihir, anda tentukan pembolehubah satu demi satu.

Menggunakan gabungan nombor dan huruf yang tidak dapat dijelaskan sebagai nama pembolehubah ialah hasil kalah-kalah. Mencari pembolehubah aksara tanpa makna dalam blok kod 40 baris adalah mimpi ngeri penyelenggaraan. Mencampurkan pengisytiharan pertama pembolehubah ke dalam blok kod 40 baris juga merupakan mimpi ngeri. Walaupun anda menghadapi pembolehubah sedemikian sendiri, anda tidak boleh tidak bertanya kepada diri sendiri: "Di manakah ini ditakrifkan?", dan kemudian gunakan kombinasi Ctrl F dengan cepat untuk mencari lokasi di mana pembolehubah ini pada asalnya ditakrifkan dalam kod sumber. Tidak, jangan lakukan itu, sebaliknya, ia adalah penyalahgunaan Javascript dan pendekatan yang bodoh. Anda harus sentiasa menentukan pembolehubah di bahagian atas skopnya. Ia tidak bermakna bahawa hanya kerana ia tidak perlu, anda tidak perlu melakukannya.

function(){
var a,//description
b; //description
//process…
}

3. Anda tidak memahami skop pembolehubah Javascript.

Anda seorang pengaturcara yang genius Apa yang anda makan ialah C dan apa yang anda lakukan ialah Senarai. Anda tahu apa itu skop pembolehubah, anda mempunyai kawalan penuh ke atas pembolehubah anda, dan anda mengawasinya seperti seorang raja. Walau bagaimanapun, Javascript berak dalam kopi anda dan membuat anda ketawa.

var herp=”one”;
{
var herp=”two”;
}
alert(herp);

Dalam kes ini, herp yang anda dapat bukanlah "satu", tetapi "dua". Skop pembolehubah Javascript tidak bergantung pada blok kod seperti bahasa lain. Skop pembolehubah Javascript adalah berdasarkan fungsi. Setiap fungsi mempunyai skop pembolehubahnya sendiri, dan Javascript hebat tentang perkara ini dan mengabaikan skop tidak bermakna yang disertakan dengan pendakap kerinting. Malah, Javascript sangat hebat sehingga anda juga boleh melepasi skop pembolehubah seperti ruang nama atau pembolehubah.

4. Anda berpendapat bahawa ciri berorientasikan objek Javascript hanya dicantumkan.

Javascript, sejak penubuhannya, ia merupakan bahasa berorientasikan objek. Segala-galanya dalam Javascript adalah objek, semuanya! Malah simbol literal seperti nombor dan aksara boleh ditukar menjadi objek melalui pembina yang wujud sendiri. Berbanding dengan bahasa berorientasikan objek lain, Javascript berbeza kerana ia tidak mempunyai kelas. Objek Javascript ditakrifkan seperti fungsi, malah fungsi itu sendiri adalah objek. Javascript mempunyai atribut yang dipanggil prototaip Atribut ini dibina ke dalam semua objek Anda boleh menggunakannya untuk menukar struktur objek, mengubah suai objek, menambah lebih banyak pembolehubah dan lebih banyak fungsi.

var derp; //will hold a Herp instance
var Herp= function(){
this.opinion=”Javascript is cooler than BASIC.”;
}
Herp.prototype.speak=function(){ alert(this.opinion); }
var derp= new Herp();
derp.speak();

Jika ini nampaknya tidak relevan kepada anda, saya ingin memperkenalkan rakan baik saya, Google kepada anda, Google pandai membantu orang mempelajari ilmu. Orientasi objek adalah topik yang terlalu besar untuk artikel pendek berprofil rendah saya.

5. Anda seperti orang buta dan kuda buta apabila anda menggunakan kata kunci "baru".

Javascript mestilah teman wanita pertama anda, kerana anda nampaknya rugi. Jika anda ingin menggembirakan Javascript seperti orang sebenar, anda perlu memahami notasi objek. Kecuali apabila anda perlu membuat instantiate objek, atau dalam kes yang jarang berlaku di mana anda perlu menangguhkan pemuatan data, anda pada dasarnya tidak perlu menggunakan kata kunci baharu. Memperuntukkan alamat sejumlah besar pembolehubah baharu dalam JavaScript adalah operasi yang perlahan, dan demi kecekapan anda harus sentiasa menggunakan tatatanda objek.

var rightway= [1, 2, 3];
var wrongway= new Array(1, 2, 3);

是否还记得我说过Javascript的变量范围是以函数为基础的?是否还记得有人说Javascript的对象像函数那样定义?如果你不使用new关键字来声明一个对象,你将会使这个对象成为全局范围内的对象。所以,永远使用new关键字来声明对象是一个好习惯。

var derp=”one”;
var Herp=function(){
this.derp=”two”;
}
var foo=Herp();
alert(derp);

如果你这样写,Javascript并不会在意,而你真正弹出的答案是“two”!有很多方法可以防止对象做出这样的行为,可以以使用instanceOf,但更好的方法是正确的使用new关键字,这样显得更专业。

现在你知道你的Javascript代码写的很烂了吧,如果你记住了上面所说的东西,你的代码就会有所改善。更多相关教程请访问JavaScript视频教程

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn