Rica ederim, öğreticide bulunması zor olan 11 JavaScript numarası, lütfen kabul edin

Tam metin 3721 Kelimeler, tahmini öğrenme süresi 11 dakika

Kaynak: Pexels

Bugün Xiaoxin, herkes için çok faydalı 11 JavaScript ipucu sıralayacak.

Satın alamazsan, acı çekemezsin, kandırılamazsın, gel ve bir bak ~

1. Dizinin son öğesini alın

Başlangıç ve bitiş parametrelerini ayarlarken, Array.prototype.slice (başlangıç, bitiş) diziyi kesme işlevine sahiptir. Bununla birlikte, sonlandırma parametresi ayarlanmadıysa, işlev otomatik olarak dizinin maksimum değerine ayarlanacaktır.

Bu işlev negatif değerleri kabul edebilir. Sanırım pek çok kişi bunu bilmiyor ve başlangıç parametresini negatif bir sayıya ayarlarsanız dizinin son birkaç öğesini alacaksınız:

  • vararray =;
  • console.log (dizi.slice (-1)); //
  • console.log (dizi.slice (-2)); //
  • console.log (dizi.slice (-3)); //
  • 2. Belirli bir değeri varsayılan olarak ayarlamak için || operatörünü kullanın

    Mevcut ES6, varsayılan bir parametre işlevine sahiptir. Bu özelliği eski tarayıcılarda simüle etmek için, belirli bir değeri varsayılan olarak belirlemek için || (VEYA operatörü) kullanabilir ve bunu ikinci kullanılabilir parametre olarak kullanabilirsiniz.

    İlk parametre yanlış değerine dönerse, ikinci parametre varsayılan değer olarak kabul edilecektir. Şu örneği düşünün:

  • function Kullanıcı (ad, yaş) {
  • this.name = isim || "OliverQueen";
  • this.age = yaş || 27;
  • } var kullanıcı1 = yeni Kullanıcı ();
  • console.log (user1.name); // Oliver Queen
  • console.log (user1.age); // 27var user2 = yeni Kullanıcı ("Barry Allen", 25);
  • console.log (kullanıcı2.adı); // Barry Allen
  • console.log (user2.age); // 25
  • 3. Dizi öğelerini yeniden düzenleyin

    Lodash gibi harici araç kitaplıkları kullanmadan dizi öğelerini yeniden düzenlemek ister misiniz? Bu harika işlevi deneyin:

  • var list =;
  • console.log (list.sort (function () {Math.random () - 0.5})); //
  • 4. Kısa devre koşulları

    Şuna benzer bir kod görürseniz:

  • eğer (bağlı) {login ();
  • }
  • Yukarıdaki kod, değişkenler (doğrulanacak olan) ve işlevler (VE operatörü) birleştirilerek kısaltılabilir. Örneğin, yukarıdaki kod bir satıra kısaltılabilir:

  • bağlı oturum açma ();
  • Nesnede özelliklerin veya işlevlerin olup olmadığını kontrol etmek için aynı işlemi gerçekleştirebilirsiniz. Aşağıdaki koda benzer:

  • user user.login ();
  • 5. Diziyi yakalayın

    Bu teknik, dizinin boyutunu kilitleyebilir ve ayarlamak istediğiniz öğelerin sayısına göre diziden bazı öğeleri silebilir, bu çok kullanışlıdır.

    Örneğin, 10 öğeli bir diziniz varsa, ancak yalnızca

    İlk beş için, dizi.length = 5 ayarlayarak diziyi kesebilir ve küçültebilirsiniz. Aşağıdaki örneği düşünün:

  • var dizi =;
  • console.log (dizi.length); // 6
  • dizi.length = 3;
  • console.log (dizi.length); // 3
  • console.log (dizi); //
  • Kaynak: Pexels

    6. Sayılara dönüştürmek için + operatörünü kullanın

    Bu teknik harika! Çalıştırması çok basittir, ancak yalnızca str işlevi için geçerlidir, aksi takdirde NaN'ye dönecektir (sayı değil). Aşağıdaki örneği düşünün:

  • functiontoNumber (strNumber) {
  • return + strNumber;
  • } console.log (toNumber ("1234")); // 1234
  • console.log (toNumber ("ACB")); // NaN
  • Bu teknik aynı zamanda tarihler için de geçerlidir, bu durumda zaman damgasına dönecektir:

  • console.log (+ yeni Tarih ()) // 1461288164385
  • 7. Dizileri birleştirin

    İki diziyi birleştirmeniz gerekiyorsa, Array.contat () işlevini kullanabilirsiniz:

  • var dizi1 =;
  • var dizi2 =;
  • console.log (dizi1.concat (dizi2)); //;
  • Ancak, bu işlev büyük dizileri birleştirmek için en iyi araç değildir çünkü yeni diziler oluştururken çok fazla bellek kullanır.

    Bu durumda, yeni bir dizi oluşturmak yerine Array.push.apply (arr1, arr2) kullanabilirsiniz. Bu işlev, çok fazla bellek kullanmadan ikinci diziyi birinci diziyle birleştirir:

  • vararray1 =;
  • var dizi2 =;
  • console.log (dizi1.push.apply (dizi1, dizi2)); //;
  • 8. Döngüdeki array.length önbelleği

    Bu teknik basittir, ancak bir döngüdeki büyük dizilerle uğraşırken performans üzerinde büyük bir etkisi olabilir. Diziyi yinelemek için hemen hemen herkes aynı anda şu şekilde kod yazacaktır:

  • for (vari = 0; i < dizi.length; i ++) {
  • console.log (dizi );
  • }
  • Küçük bir diziyle uğraşıyorsanız sorun değil, ancak büyük bir diziyle uğraşıyorsanız, kod, döngünün her yinelemesinde dizinin boyutunu yeniden hesaplayarak gecikmeye neden olur.

    Bu durumdan kaçınmak için, kullanılacak dizi.length, döngünün her yinelemesinde çağırmak yerine bir değişken içinde önbelleğe alınabilir:

  • var uzunluk = dizi.length;
  • için (var i = 0; i < uzunluk; i ++) {
  • console.log (dizi );
  • }
  • Kısaltmak ister misiniz? Şöyle yazın:

  • for (var i = 0, uzunluk = dizi.length; i < uzunluk; i ++) {
  • console.log (dizi );
  • }
  • 9. Tümünü değiştirin

    String.replace () işlevi, dizelerin yerine dizelerin ve normal ifadelerin kullanılmasına izin verir; bu işlev bu makinede yalnızca ilk seferin yerini alabilir. Ancak replaceAll () işlevinin benzetimini yapmak için normal ifadenin sonunda / g kullanabilirsiniz:

  • varstring = "john john";
  • console.log (string.replace (/ hn /, "ana")); // "joana john"
  • console.log (string.replace (/ hn / g, "ana")); // "joana joana"
  • 10. Boolean değerine dönüştürmek için !! operatörünü kullanın

    Bazen bir değişkeni gerçek bir değer olarak ele almak için, bir değişkenin var olup olmadığını veya geçerli bir değeri olup olmadığını kontrol etmemiz gerekir. Bu doğrulama sürecinde !! (double negation operatörü) kullanabilirsiniz.

    Basit bir !! değişkeni, verileri otomatik olarak bir Boole değerine dönüştürür ve değişken, yalnızca 0, null, "", tanımsız veya NaN gibi bir değer içeriyorsa yanlışa döner, aksi takdirde doğruya döner.

    Bu süreci pratikte anlamak için şu basit örneğe bir göz atalım:

  • function Hesabı (nakit) {
  • this.cash = nakit;
  • this.hasMoney = !! nakit;
  • }
  • var hesap = yeni Hesap (100.50);
  • console.log (account.cash); // 100.50
  • console.log (account.hasMoney); // doğru
  • var emptyAccount = yeni Hesap (0);
  • console.log (emptyAccount.cash); // 0
  • console.log (emptyAccount.hasMoney); // yanlış
  • Bu örnekte, account.cash değeri sıfırdan büyükse, account.hasMoney doğrudur.

    11. NodeList'i Dizilere Dönüştür

    Document.querySelectorAll ("p") işlevini çalıştırırsanız, NodeList nesnesi olan DOM öğesi dizisine dönebilir. Ancak bu nesne, sort (), azaltma (), map () ve filter () gibi bir dizinin tüm işlevlerine sahip değildir.

    Yukarıdaki işlevleri ve diğer yerleşik dizi işlevlerini çalıştırmak için, NodeList'i Dizilere dönüştürmeniz gerekir. Bu tekniği denemek ister misin? Şu işlevi kullanabilirsiniz: .slice.call (öğeler):

  • var elements = document.querySelectorAll ("p"); // NodeList
  • var arrayElements = .slice.call (elements); // Artık NodeList bir dizidir // Bu, NodeList'i Array'e dönüştürmenin başka bir yoludur var arrayElements = Array.from (elements);
  • Kaynak: Pexels

    Hepsi bu, öğrendin mi? Herhangi bir öneriniz veya sorunuz varsa, Xiaoxin'i yorum alanında "taciz edin" ~

    Yorum Beğen Takip Et

    Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım

    Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

    Hyundai'nin yeni Sonatı, bu yıl içinde A8 direksiyon ile yurt içinde satılacak.
    önceki
    İyi bir veri bilimcisi, acilen güçlendirmek için hangi teknik becerilere ihtiyacınız var?
    Sonraki
    Kadın göğüslerini daha çekici hale getirir mi? Plastik cerrahlar sihirlerini göstermek için göz izleme teknolojisini kullanabilir mi?
    Tahtaya vurun! (Muhtemelen) bilmediğiniz 4 önemli Numpy işlevi
    Bugünün temel sesi | insanlara ait değil! Dünyanın ilk yapay zeka "mucidi" patent başvurusu reddedildi
    Her şeyi bırakın ve Açısal 3 nedeni seçin
    Python'da nasıl hızlı bir şekilde kullanıcı arayüzü oluşturacağınızı öğrenin, büyük tanrı sizi uçmaya götürecek
    "Kel" atış mı? Programcıların çok verimsiz olmasına neden olan 7 alışkanlık
    Richard Feynman, güçlü yapay zeka üzerine - makineler insanlar gibi düşünebilir mi?
    Bugünün Çekirdek Sesi | Bill Gates'in Yeni Yıl Kararı: Ben ve diğer milyarderler daha fazla vergi öder
    Sektörden sorular, JuliaSet Python'un yerini alacak mı?
    Yapay zekanın ölümü - neden yapay zeka projeleri defalarca yenilgiye uğradı?
    Android geliştirme mühendisinin anlatımı: 2 yıllık geliştirme, 7 deneyimi özetledim
    Algoritmaların adilliğini ölçmek neden her zaman zordur?
    To Top