Rumah >hujung hadapan web >tutorial js >Kongsi 9 kemahiran pengaturcaraan javascript yang saya fikir secara peribadi adalah kemahiran penting_javascript

Kongsi 9 kemahiran pengaturcaraan javascript yang saya fikir secara peribadi adalah kemahiran penting_javascript

WBOY
WBOYasal
2016-05-16 16:02:021270semak imbas

1. Gunakan pertimbangan dengan mahir:

Dalam js, NaN, undefined, Null, 0, "" adalah palsu apabila ditukar kepada bool, jadi ia boleh ditulis seperti ini.

Salin kod Kod adalah seperti berikut:

jika(!obj) {}

mewakili apa yang objek lakukan jika ia palsu, kerana jika obj adalah mana-mana di atas, maka ia adalah palsu, !false adalah benar, jadi tidak perlu untuk if(obj==null || obj == NaN ....).

2. Gunakan operator dengan mahir:

Terdapat helah yang sangat klasik untuk mendapatkan cap masa.

Salin kod Kod adalah seperti berikut:

var rentang data = new Date()*1;

Kami tahu bahawa js ialah bahasa yang ditaip dengan lemah Date() akan mengembalikan rentetan yang mewakili masa.

3. Gunakan ungkapan biasa dengan mahir:

Salin kod Kod adalah seperti berikut:

/.a/ig.exec('xsas')
//Setara dengan mencipta objek reg dan memanggil kaedah exec Sudah tentu, kaedah lain juga boleh dipanggil, seperti test(), match(), dll.

4 Dapatkan nilai maksimum dan minimum tatasusunan:

Salin kod Kod adalah seperti berikut:

nilai var = [1,2,3,40,23]; var max = Math.Max.apply(Math,values);

Panggil Max.apply, tetapkan objek kepada Matematik, dan kemudian berikan Nilai untuk menentukan nilai maksimum.

5. Pengoptimuman memori:

Salin kod Kod adalah seperti berikut:
fungsi p(){this.p='moersing'}; p1.xx
p1.xx
…..
p1=null; //Selepas menjalankan operasi, akhirnya secara manual lepaskan rujukan kepada p1.


6. Cara paling popular untuk mencipta objek (mod prototaip):

fungsi c(){
This.name ='moersing';
This.age=18;
This.books=['javascript develop','C# develop'];
}
c.prototaip={
displayBookName:function (){
foreach(var t dalam this.books)
            {
              document.write(this.books[t]);
}
}
}


Kelemahan terbesar corak pembinaan prototaip ialah perkongsian jenis rujukan Oleh itu, tentukan jenis rujukan dalam pembina, dan tentukan kaedah umum dalam prototaip, menggunakan rujukan ini.

7. Skop peringkat blok dan pembolehubah persendirian

Dalam JavaScript, tiada perkara seperti skop peringkat blok dan pembolehubah peribadi, tetapi dengan menggunakan beberapa ciri, anda boleh mensimulasikan kesan ini.

7.1 Skop peringkat blok:

(fungsi(){
//Skop peringkat blok
}
)();


Tambahkan kurungan di sekeliling fungsi tanpa nama Saya memanggilnya "penyawaian fungsi", iaitu, ia boleh dipanggil seperti fungsi standard, seperti:

var name =function(){};
(nama)();//Ini biasanya tidak ditulis seperti ini;

Kelebihan ini ialah pembolehubah dalam fungsi tidak boleh diakses di luar (), dan ia menjadi skop peringkat blok Kaedah ini biasanya digunakan semasa menulis pemalam, dan tidak menambah pembolehubah tambahan kepada global .

7.2 Pembolehubah persendirian:

Salin kod Kod adalah seperti berikut:

function private()
{
var name = 'moersing';
This.getName = function(){
Kembalikan nama ini;
}
}

Pembolehubah peribadi sebenarnya menggunakan skop fungsi sebagai sekatan (tidak boleh diakses dari luar), dan kemudian tentukan kaedah yang mengembalikan pembolehubah yang sepadan, dan itu sahaja.

8.DOM NodeList:

nodeList ialah elemen dinamik, yang bermaksud bahawa jika anda menambah sebarang elemen pada dokumen, nodeList akan dikemas kini dalam masa nyata, seperti:

Salin kod Kod adalah seperti berikut:

var alldiv = document.getElementsByTagName('div');
for(var i=0;i {
      var div = document.createElement('div');
        div.innerHTML= i.toString();
           document.body.appendChild(div);
}

Kod ini akan menyebabkan gelung tak terhingga A div dicipta dalam gelung, dan kemudian kaedah appendChild menambahkannya pada badan Kemudian, semua alldiv akan dikemas kini dengan serta-merta, jadi i

Salin kod Kod adalah seperti berikut:

var alldiv = document.getElementsByTagName('div');
var len,i;
untuk(i=0,len=alldiv.length;i {
      var div = document.createElement('div');
        div.innerHTML= i.toString();
           document.body.appendChild(div);
}

Berikut ialah cadangan: Adalah lebih baik untuk tidak mengendalikan NodeList dengan kerap, kerana setiap operasi akan melaksanakan pertanyaan pepohon DOM.

Sebagai tambahan kepada kaedah yang diperkenalkan di atas, API (pemilih API Level1) HTML5 yang baru ditambah juga boleh menyelesaikan masalah ini sama dengan pertanyaan masa nyata linq C#, I akan mengemas kini blog pada masa hadapan, jadi nantikan :

Salin kod Kod adalah seperti berikut:

var allDiv= document.querySelectorAll('div');
for(var i=0;i {
      var div = document.createElement('div');
        div.innerHTML= i.toString();
           document.body.appendChild(div);
}

querySelectorAll memerlukan satu parameter, pemilih CSS, serupa dengan $() dalam jquery NodeList yang dipulangkan adalah koleksi DOM bukan dinamik yang tepat pada masanya.

Terdapat juga querySelector, yang mengembalikan elemen pertama yang dipadankan untuk mendapatkan butiran tentang API HTML5, lihat

http://www.w3.org/standards/techs/dom#w3c_all

atau

https://developer.mozilla.org/zh-CN/docs/Web/API

Selain itu, saya juga sedang menyediakan blog khusus tentang HTML5 API, jadi nantikan.

Prestasi 9.DOM:

Jangan lakukan perkara bodoh seperti itu (saya telah melakukannya...)

Salin kod Kod adalah seperti berikut:

untuk(var i=0;i<10;i )
{
document.querySelector('ul').innerHTML="
  • " i "
  • ";
    }

    Menetapkan nilai kepada innerHTML objek akan memanggil penghurai C terbina dalam untuk menghuraikan rentetan Walaupun ia sangat pantas, sebaiknya jangan lakukan ini kerana ia akan menyebabkan kehilangan prestasi tertentu.

    Lebih baik lakukan ini:

    Salin kod Kod adalah seperti berikut:

    var ih=null;

    untuk(var i=0;i<10;i )
    {
    ih ="

  • " i "
  • ";
    }
    document.querySelector('ul').innerHTML=ih;

    Beberapa topik pengoptimuman prestasi lain akan dikemas kini apabila ada masa.

    Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

    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