Chrome Geliştirici Araçları'nı kullanarak JavaScript'te nasıl hata ayıklayacağınızı öğrenin. Chrome Devtools'da JavaScript kodunda hata ayıklamaya yönelik ayrıntılı bir kılavuz

  • 18.06.2019

NetBeans IDE 7.3, HTML5 uygulamaları geliştirmek için kullanabileceğiniz yeni bir proje türü sunar. HTML5 uygulamaları, tarayıcılarda çalışan ve akıllı telefonlar, tabletler ve dizüstü bilgisayarlar dahil olmak üzere çeşitli cihazlarda görünen uygulamalar oluşturmak için genellikle HTML, CSS ve JavaScript'i birleştirir. Bu belge, IDE'nin, IDE'deki JAVA komut dosyalarının hatalarını ayıklamak ve test etmek için kullanılabilecek araçları nasıl sağladığını gösterir.

HTML5 uygulamanızda JavaScript dosyalarında hata ayıklamanız gerekiyorsa, Chrome tarayıcı için NetBeans Connector uzantısını yüklemenizi öneririz. Uygulama bir tarayıcıda başlatıldığında ve uzantı yüklendiğinde hata ayıklama desteği otomatik olarak etkinleştirilir.

IDE ayrıca Jasmine test çerçevesini ve JS Test Sürücüsü sunucusunu kullanarak JavaScript dosyaları için birim testi kurmayı ve çalıştırmayı da kolaylaştırır. JS Test Sürücüsünü farklı tarayıcılar için farklı modüller için çalışacak şekilde yapılandırabilir ve testler çalıştırıldığında IDE'nin yüklemesi gereken JavaScript kitaplıklarını, komut dosyalarını ve testleri hızlı bir şekilde belirleyebilirsiniz. Test başarısız olursa, hata kodunu bulmak için hata ayıklayıcıyı kullanabilirsiniz.

Chrome tarayıcısı için NetBeans Connector uzantısını yükleme hakkında daha fazla bilgi için eğiticiye bakın.

IDE'nin JavaScript düzenleme özelliklerine genel bir bakış için bkz. NetBeans IDE'de JavaScript'i Düzenleme. ...

Bu öğreticinin demo videosunu izlemek için bkz. Video: HTML5 Uygulamalarında JavaScript'i Test Etme ve Hata Ayıklama.

Bu öğreticiyi tamamlamak için aşağıdaki malzemelere ihtiyacınız olacak.

Notlar.

  • Bu belge, JavaScript birim testlerini çalıştırmak için JS Test Sürücüsü sunucusunu kullanır. JS Test Sürücüsü Proje Ana Sayfası bölümündeki sunucu özelliklerini tanımanız önerilir.
  • Okuyucunun HTML, CSS ve JavaScript'te programlama konusunda temel bilgi veya deneyime sahip olduğu varsayılır.

Örnek HTML5 Uygulaması Oluşturma

Bir site şablonu kullanarak örnek bir HTML5 uygulaması oluşturmak için bu adımları izleyin.


Projeyi Çalıştır düğmesi ile çalıştırdığınızda, HTML5 uygulamasının ilk sayfası Chrome tarayıcısında açılır ve cep telefonlarının bir listesini görüntüler. Bir cep telefonunun adına tıkladığınızda, sayfada telefonla ilgili bilgiler görüntülenir.


Tarayıcı sekmesinde, NetBeans Connector'ın sekmede hata ayıkladığını belirten bir bildirim olan sarı bir çubuk olduğunu unutmayın. IDE ve tarayıcı birbirine bağlıdır ve sarı çubuğun göründüğü durumlarda birbirleriyle etkileşim kurma yeteneğine sahiptir. IDE'den bir HTML5 uygulaması çalıştırdığınızda, JavaScript hata ayıklayıcı otomatik olarak etkinleştirilir. Dosyadaki değişiklikleri kaydettikten veya CSS stil sayfasında değişiklik yaptıktan sonra, tarayıcı penceresi değişikliklerle otomatik olarak yenilendiğinden sayfayı yeniden yüklemeniz gerekmez.

Sarı çubuğun kapatılması veya İptal'in tıklanması IDE ile tarayıcı arasındaki bağlantıyı keser. Bağlantı koparsa, JavaScript hata ayıklayıcısını kullanmak için HTML5 uygulamasını IDE'den yeniden başlatmanız gerekir.

Ayrıca, tarayıcı alanının URL'sinin konumunda NetBeans simgesinin göründüğünü unutmayın. Tarayıcıda görüntüyü yeniden boyutlandırmak ve NetBeans modu doğrulamasını etkinleştirmek için çeşitli seçenekler sunan bir menüyü açmak için simgeye tıklayabilirsiniz.

JavaScript hata ayıklayıcısını kullanma

Bu alıştırma, bir JavaScript dosyasına bir kesme noktasının nasıl yerleştirileceğini ve uygulamanın nasıl yeniden çalıştırılacağını açıklar. Değişkenlerin değerlerini hızlı bir şekilde görüntülemek için editör ipucunu kullanabilirsiniz.

  1. Projeler penceresindeki js düğümünü genişletin ve dosyayı düzenleyicide açmak için controllers.js dosyasına çift tıklayın.
  2. Sol kenarlığı tıklatarak controllers.js'deki 16. satıra bir çizgi kesme noktası yerleştirin.

    Projede ayarlanan kesme noktalarını görüntülemek için Kesme Noktaları penceresini açmak için Pencere > Hata Ayıkla > Kesme Noktaları'nı seçin.


  3. Projeyi yeniden çalıştırmak için araç çubuğundaki Çalıştır düğmesine tıklayın.

    Projeyi başlatırken, ayarlanan kesme noktasına ulaşılmadığı için aynı sayfa görüntülenir.

  4. Tarayıcınızda, örneğin Motorola Atrix4G gibi sayfadaki girişlerden birine tıklayın.

    Veriler JavaScript'e aktarılmadığı ve işlenmediği için sayfanın kısmen yüklendiğini ve telefon için veri olmadığını göreceksiniz.

  5. IDE düzenleyicide, kesme noktasına ulaşıldığını ve program sayacının şu anda controllers.js dosyasının 16. satırında olduğunu görebilirsiniz.
  6. Değişken hakkında bilgi içeren bir araç ipucunu görüntülemek için imleci telefon değişkeninin üzerine getirin.

    Araç ipucu aşağıdaki bilgileri görüntüler: telefon = (Kaynak) Kaynak.

  7. Genişletmek ve değişkenler ve değerler listesini görüntülemek için bir ipucuna tıklayın.

    Örneğin, android düğümünü genişletmek, os ve ui dizelerinin değerlerini görüntüler.

    Değişkenler penceresindeki listeyi görüntülemek için Pencere > Hata Ayıkla > Değişkenler'i de seçebilirsiniz.

  8. angular.js kitaplığındaki JavaScript işlevleri arasında gezinmek için araç çubuğu düğmelerini kullanın veya uygulamaya devam etmek için Devam'a (F5) tıklayın.

JS Birim Testlerini Çalıştırma

IDE, JS Test Driver sunucusunu birim testlerini çalıştıracak şekilde yapılandırmayı kolaylaştırır. Bu öğreticide, örnek projeyle birlikte verilen JavaScript birim testlerini ve Jasmine test çerçevesini kullanacaksınız.

JS Test Sürücüsü, JavaScript birim testlerinin çalıştırılması için hedef olan bir URL sağlayan bir sunucudur. Testler çalıştığında sunucu başlar ve testlerin çalışmasını bekler. Sunucunun çalıştığını ve bekleme modunda olduğunu doğrulamak için tarayıcı penceresinde yeşil bir durum mesajı görünür. IDE, Hizmetler altındaki JS Test Sürücüsü düğümünden açabileceğiniz JS Test Sürücüsü için bir yapılandırma iletişim kutusu sağlar. Yapılandırma iletişim kutusu, JS Test Sürücüsü sunucusu JAR'ın konumunu ve tarayıcıların çalıştırılacağı tarayıcıları kolayca belirlemenizi sağlar. JS Test Driver düğümü, sunucunun çalışıp çalışmadığını hızlı bir şekilde belirlemenize ve sunucuyu başlatmanıza veya durdurmanıza olanak tanır.

JS Test Driver sunucusunu yapılandırma hakkında daha fazla bilgi için JsTestDriver'a Başlarken belgelerine bakın.

  1. JS Test Driver JAR'ı indirin ve JAR dosyasını yerel sisteminize kaydedin.
  2. Hizmetler penceresinde, JS Test Sürücüsü düğümüne sağ tıklayın ve Yapılandır'ı seçin.
  3. Yapılandır iletişim kutusunda, Gözat'a tıklayın ve indirilen JS Test Sürücüsü JAR dosyasını bulun.
  4. NetBeans JS Hata Ayıklayıcı özelliğini kullanarak Chrome'u seçin. Tamam'ı tıklayın.

    Not. JS Test Driver JAR dosyasının konumunun yalnızca JS Test Driver ilk kez yapılandırılırken belirtilmesi gerekir.

    Sistemde kurulu tarayıcılarda test için yakalanıp kullanılabilecek tarayıcıların listesi. Ek tarayıcı olarak birkaç tarayıcı seçebilirsiniz, ancak testleri çalıştırmak için her tarayıcı için sunucu için ek olabilecek bir pencerenin açık olması gerekir. Seçilen tarayıcılar, sunucu IDE'den başlatıldığında otomatik olarak yakalanacaktır.

  5. Projeler penceresinde proje düğümüne sağ tıklayın ve Yeni> Diğer'i seçin.
  6. Lütfen seçin JsTestDriver Yapılandırma Dosyası"Birim Testi" kategorisinde. "İleri" ye basın.
  7. Emin olun jsTestSürücüsü"Dosya adı" olarak ayarlayın.
  8. Oluşturulan Dosya kutusunda, dosyanın projenin yapılandırma klasöründe bulunduğundan emin olun (AngularJSPhoneCat / config / jsTestDriver.conf).

    Not. jsTestDriver.conf yapılandırma dosyası, projenin yapılandırma klasörü olmalıdır. Oluşturulan dosyanın konumu yapılandırma klasörü değilse, Gözat'a tıklayın ve iletişim kutusunda AngularJSPhoneCat - Config Files klasörünü seçin.

  9. Jasmine kitaplıklarını indirmek için onay kutusunun işaretli olduğundan emin olun. Bitir düğmesini tıklayın.

    Not. jsTestDriver'ı çalıştırmak için Jasmine kitaplıklarını indirmeniz gerekir. IDE'nin Jasmine kitaplıklarını yükleyemediğine dair bir bildirim alırsanız, Seçenekler penceresinde IDE'nin proxy ayarlarını kontrol edin.

    Bitir'e tıkladığınızda, IDE bir şema yapılandırma dosyası, jsTestDriver.conf oluşturur ve dosyayı bir düzenleyicide açar. Projeler penceresi, Yapılandırma Dosyaları düğümü altında bir yapılandırma dosyasının oluşturulduğunu görüntüler. Unit Tests düğümü altındaki lib klasörünü genişletirseniz Jasmine kitaplıklarının projeye eklendiğini göreceksiniz.

    Düzenleyicide, varsayılan olarak oluşturulan yapılandırma dosyasının aşağıdaki içeriğini görebilirsiniz:

    Sunucu: http:// localhost: 42442 yük: - test / lib / jasmine / jasmine.js - test / lib / jasmine-jstd-adapter / JasmineAdapter.js - test / birim / *.Js hariç:

    Yapılandırma dosyası, testleri çalıştırmak için kullanılan yerel sunucudaki varsayılan konumu tanımlar. Dosya ayrıca yüklenecek dosyaları da belirtir. Varsayılan olarak liste, Jasmine kitaplıklarını ve birim klasöründeki tüm JavaScript dosyalarını içerir. Testler genellikle birim klasöründe bulunur, ancak testleri çalıştırmak için yüklenmesi gereken diğer dosyaların konumunu belirtmek için listeyi değiştirebilirsiniz.

    AngularJS Telefon Dizini Eğitimi projesinin modüller klasörü, birim testleri içeren dört JavaScript dosyası içerir.

    Birim testlerini çalıştırmak için, test etmek istediğiniz JavaScript dosyalarının konumunu ve Angular JavaScript kitaplıklarını indirmeler listesine ekleyebilirsiniz.

  10. Aşağıdaki konumları ekleyin (vurgulanan gözü pek yazı tipinde) yapılandırma dosyasının yükleme bölümüne. Değişikliklerinizi kaydedin. yük: - test / lib / jasmine / jasmine.js - test / lib / jasmine-jstd-adapter / JasmineAdapter.js - test / birim / *.js - uygulama / lib / açısal / açısal.js - uygulama / lib / açısal / açısal - *.js - uygulama / js / *.js - test / lib / açısal / açısal-mocks.js
  11. Projede ayarlanan tüm kesme noktalarını devre dışı bırakın.

    Kesme noktaları penceresindeki kesme noktalarının onay kutuları temizlenerek kesme noktaları devre dışı bırakılabilir.

  12. Test IDE'yi tıklatmak, Chrome'da JS Test başlatıcısını ve Çıktı penceresinde iki sekmeyi otomatik olarak açar.


    Chrome tarayıcı penceresi, jsTestDriver sunucusu başlatma mesajını görüntüler. Sunucunun localhost'ta çalıştığını belirten bir mesaj görüntülenir: 42442. Çıktı penceresindeki js-test-driver Sunucu sekmesi, sunucunun durumunu görüntüler.


    Not. Birim testlerini çalıştırmak için tarayıcı penceresinin açık olması ve jsTestDriver sunucusunun çalışıyor olması gerekir. Hizmetler penceresindeki JS Test Sürücüsü düğümüne sağ tıklayıp Başlat'ı seçerek sunucuyu başlatabilir ve pencereyi açabilirsiniz.

    Çıktıdaki Run JS Unit Testing sekmesi, çalıştırılan dört testin çıktısını gösterir. Testler, controllerSpec.js ve filterSpec.js dosyalarında bulunur. (Birim klasöründeki servicesSpec.js ve directivesSpec.js dosyalarında testler eksik.)


  13. Test Sonuçları penceresini açmak için ana menüden Pencere > Sonuçlar > Test Sonuçları'nı seçin.

    Pencere, tüm testlerin başarılı olduğunu belirten bir mesaj görüntüler.


    Başarıyla geçen testlerin genişletilmiş listesini görmek için pencerenin sol kenarındaki yeşil onay kutusuna tıklayabilirsiniz.

JS Birim Testlerinde Hata Ayıklama

Bu alıştırma, bir birim testi başarısız olduğunda JavaScript dosyalarında hata ayıklamak için IDE'yi nasıl kullanabileceğinizi gösterir.

  1. Projeler penceresindeki js klasörünü genişletin ve dosyayı düzenleyicide açmak için controllers.js dosyasına çift tıklayın.
  2. Aşağıdaki değişiklikleri yapmak için dosyadaki 7. satırı değiştirin (vurgulanan gözü pek yazı tipi). Değişikliklerinizi kaydedin. function PhoneListCtrl ($ kapsam, Telefon) ($ kapsam.phones = Phone.query (); $ kapsam.orderProp = " isim"; }

    Değişiklikleri kaydederken, sayfa tarayıcıya otomatik olarak yeniden yüklenir. Telefonların listedeki sırası görüntülenir.

  3. JS Test Driver sunucusunun çalıştığından ve Chrome tarayıcı penceresinde bir durum mesajı görüntülendiğinden emin olun.
  4. Projeler penceresinde proje düğümüne sağ tıklayın ve Test'i seçin.

    Testi çalıştırdığınızda, beklenen değer "yaş" yerine "ad" değerinin bulunduğu mesajıyla testlerden birinin bir hatayla karşılaştığını görebilirsiniz.

  5. Çıktı penceresindeki JS birimi Test Yürütme sekmesini açın.

    orderProp'un 41. satırda olması gerektiğini belirten bir mesaj görüntülenir.

  6. Testin başarısız olduğu satıra gitmek için Run JS Unit Tests sekmesindeki bağlantıya tıklayın. controllersSpec.js test dosyası düzenleyicide 41. satırda açılır (vurgulanmış gözü pek yazı tipi) it ("orderProp modelinin varsayılan değerini ayarlamalıdır", function () ( (scope.orderProp) .toBe ("yaş"); });

    KapsamOrder.prop değeri olarak testin beklenen "yaş" olduğunu görebilirsiniz.

  7. Testte hatanın oluştuğu satırda bir kesme noktası ayarlayın (satır 41).
  8. Projeler penceresinde proje düğümüne sağ tıklayın ve Test'i seçin.

    Test yeniden başlatıldığında program sayacı kesme noktasına ulaşacaktır. Araç ipucunda imleciylescopeOrder.prop'un üzerine geldiğinizde, kesme noktasına ulaşıldığında değişkenin "name" değerine sahip olduğunu görebilirsiniz.


    Alternatif olarak, Kodu Değerlendir penceresini açmak için ana menüden Hata Ayıkla> İfadeleri Değerlendir'i seçebilirsiniz. PencereyescopeOrder.prop ifadesini girip Kod Parçacığı Değerlendir'i () (Ctrl-Enter) tıkladığınızda, hata ayıklayıcı Değişkenler penceresinde ifadenin değerini görüntüler.

  9. Testi tamamlamak için araç çubuğundaki Devam düğmesine tıklayın.

Çözüm

Bu öğretici, IDE'nin JavaScript dosyalarındaki modüllerin hatalarını ayıklamak ve test etmek için kullanılabilecek araçları nasıl sağladığını gösterir. NetBeans Connector etkinleştirilmişse, uygulama Chrome'da başlatıldığında HTML5 uygulamaları için hata ayıklama otomatik olarak etkinleştirilir. IDE ayrıca Jasmine test çerçevesini ve JS Test Sürücüsü sunucusunu kullanarak JavaScript dosyaları için birim testi kurmayı ve çalıştırmayı da kolaylaştırır.


Ayrıca bakınız

IDE'de HTML5 uygulama desteği hakkında daha fazla bilgi için sitedeki aşağıdaki kaynaklara bakın:

  • HTML5 uygulamalarına başlarken. NetBeans Connector Chrome Uzantısının nasıl kurulacağını ve basit bir HTML5 uygulamasının nasıl oluşturulacağını ve çalıştırılacağını gösteren bir belge.
  • HTML5 Uygulamalarında CSS Stil Sayfalarıyla Çalışma Proje kaynaklarındaki öğeleri görsel olarak tanımlamak için IDE ve Chrome tarayıcısının doğrulama modundaki bazı CSS ve pencere sihirbazlarının nasıl kullanılacağını gösteren bir belge.
  • JavaScript kodunda değişiklik yapmak. Bu belge, IDE tarafından sağlanan temel JavaScript düzenleme yeteneklerini açıklar.

JS Test Sürücüsü ile birim testleri çalıştırma hakkında daha fazla bilgi için aşağıdaki belgelere bakın:

  • JS Test Sürücüsü proje sayfası: http://code.google.com/p/js-test-driver/
  • Yasemin ana sayfası: http://pivotal.github.com/jasmine/
  • JsTestDriver'a Giriş. JsTestDriver'ı sürekli tümleştirme sunucusuyla kullanmaya giriş.

Firebug, yürütmeyi istediğiniz zaman duraklatmanıza ve o anda her değişkeni görüntülemenize olanak tanıyan güçlü bir JavaScript hata ayıklayıcı içerir. Kodunuz yavaşlıyorsa performansı ölçmek ve darboğazları hızla bulmak için bir javascript profil oluşturucu kullanın.

Komut dosyalarını kolaylıkla bulun

Birçok web uygulaması çok sayıda dosyadan oluşur ve hata ayıklanacak olanı bulmak sıkıcı ve sıkıcı bir görev olabilir. Firebug'un komut dosyası seçim menüsü, dosyaları parmağınızın bir tıklamasıyla herhangi bir dosyayı bulmanıza yardımcı olan açık ve anlaşılır bir liste halinde sıralar ve düzenler.

Yürütmeyi herhangi bir satırda duraklat

Firebug, hata ayıklayıcıya belirli bir satıra çarptığında komut dosyası yürütmesini duraklatmasını söyleyen kesme noktaları ayarlamanıza olanak tanır. Yürütme duraklatıldığında, herhangi bir değişkenin değerlerini görüntüleyebilir ve nesneleri inceleyebilirsiniz.

Bir kesme noktası ayarlamak için herhangi bir satırın numarasına tıklayın ve orada kesme noktasının ayarlandığını gösteren kırmızı bir nokta belirecektir. Kesme noktasını kaldırmak için kırmızı noktaya tekrar tıklayın.

Yürütmeyi yalnızca şu durumlarda duraklatın:

Kesme noktaları, çok sık tetiklenirlerse sorun yaratabilir. Bazen yürütmeyi yalnızca belirli koşullar karşılandığında duraklatmak isteriz. Firebug, "koşullu" kesme noktaları ayarlamanıza olanak tanır. Kesme noktasının çalışması için doğru olması gereken bir ifadeyi test ederler.

Koşullu bir kesme noktası ayarlamak için herhangi bir satır numarasına sağ tıklayın. Bir javascript ifadesi girmenizi isteyen bir balon görünecektir. İfadeyi değiştirmek için istediğiniz zaman tekrar sağ tıklayabilir veya kesme noktasından kurtulmak için sol tıklayabilirsiniz.

Adım adım

Hata ayıklayıcı yürütmeyi duraklattığında, komut dosyasına adım adım devam edebilirsiniz. Bu, belirli bir satırın yürütülmesinin değişkenleri ve nesneleri nasıl etkilediğini açıkça görmenizi sağlar.

Ayrıca birden fazla satır için yürütmeye devam edebilirsiniz. Bu satırda yürütmeye devam etmek için bağlam menüsünde "Bu Satıra Çalıştır" satırını seçin.

hatalar yüzünden kesintiye uğradım

Hata ayıklayıcıyı her zaman seçmezsiniz ... Bazen hata ayıklayıcı sizi seçer .. Firebug, bir hata oluştuğunda hata ayıklayıcıya otomatik olarak girme yeteneği verir, böylece sorunun oluştuğu koşulları araştırabilirsiniz.

Genişletilmiş yığın

Hata ayıklayıcı yürütmeyi duraklattığında, Firebug size o anda çalışmakta olan ve geri dönmeyi bekleyen bir dizi iç içe işlev çağrısı olan çağrı yığınını gösterir.

Çağrı yığını, panelde her biri yığındaki bir işlevin adı olan kompakt bir düğme şeridi ile temsil edilir. Herhangi bir butona tıklayarak fonksiyonun duraklatıldığı satıra atlayabilir ve fonksiyon içerisinden yerel değişkenlerin değerlerine bakabilirsiniz.

İfadeleri Gözlemlemek

Hata ayıklarken, genellikle DOM'da gömülü olan karmaşık ifadelerin veya nesnelerin anlamını görmek istersiniz. Firebug, değeri hata ayıklayıcının her adımında güncellenecek olan rastgele bir javascript ifadesi yazdırmanıza olanak tanır.

İfade yazarken, nesne özelliklerini otomatik olarak tamamlamak için Sekme tuşunu kullanabileceğinizi unutmayın.

Değişken ipuçları

Yürütme duraklatıldığında, değerleri olan araç ipuçlarını görüntülemek için fareyi geçerli işlevdeki herhangi bir değişkenin üzerine getirebilirsiniz. Bu, gözlerinizi koddan ayırmanın ve okurken yanıtlar almanın harika bir yoludur.

Profil JavaScript performansı

Web uygulamanız neredeyse mükemmel. Tüm hataları çözdünüz, tasarım şık ve kullanıcılar buna bayılıyor. Tek bir sorun - bazı özellikler yavaşlıyor ve neden olduğundan emin değilsiniz ..

Firebug ile artık kodunuzun neden yavaş olduğunu merak etmenize gerek yok. Firebug profil oluşturucuyu kullanarak, sinekleri pirzolalardan kelimenin tam anlamıyla saniyeler içinde ayırabilirsiniz.

Profil oluşturucuyu kullanmak için Konsol sekmesine gidin ve "Profil" düğmesini tıklayın. Ardından uygulamanızı bir süre kullanın veya sayfayı yeniden yükleyin ve tekrar "Profil"e tıklayın. Hangi işlevlerin çağrıldığını ve her birinin ne kadar sürdüğünü gösteren ayrıntılı bir rapor göreceksiniz.

Günlüğe kaydetme işlevi çağrıları

Bazen sorunlu işlev o kadar çok çağrılır ki her seferinde hata ayıklayıcıya giremezsiniz. Sadece ne zaman ve hangi parametrelerle çağrıldığını bilmek istiyorsunuz.

Bir işleve yapılan tüm çağrıları izlemek için, Komut Dosyası sekmesine sağ tıklayın ve "Çağrıları günlüğe kaydet" işlev adını "" seçin. Ardından konsola gidin ve aramaların günlüğe süzülmesini izleyin ...

Doğrudan 108. satıra git

Genellikle betiğinizin tam satırına atlamak istersiniz. Hiçbir şey daha kolay olamazdı, soldaki ekran görüntüsünde gösterildiği gibi, başında # ile hızlı arama kutusuna satır numarasını yazmanız yeterlidir.

Yazardan: konsol.log'un bir uygulama hakkında söylenecek çok şeyi vardır, ancak bununla kodunuzun hatalarını gerçekten ayıklayamazsınız. Firefox'taki yeni JS hata ayıklayıcı, daha hızlı ve hatasız kod yazmanıza yardımcı olacaktır. Bu hata ayıklayıcının nasıl çalıştığı hakkında bir makale.

Bu örnekte, JavaScript hata ayıklamasını kolaylaştıran çok basit bir uygulama açacağız. Uygulamanın kendisi, temel açık kaynak JS çerçevelerinde çalışır. En son Firefox Developer Edition'da açın ve Mac'te Option + Cmd + S veya Windows'ta Shift + Ctrl + S klavye kısayoluyla debugger.html'yi başlatın. Hata ayıklayıcı 3 bölmeye ayrılmıştır: dosya listesi bölmesi, kod bölmesi ve araç çubuğu.

Araç çubuğu araç çubuğu, izleme ifadeleri, kesme noktaları, çağrı yığını ve kapsamlara bölünmüştür.

Console.log'u kullanmayı bırakın

Kodun hatalarını ayıklamak için console.log kullanmak istiyoruz. Değişkenin değerini bulmak için sadece koda bir çağrı ekliyoruz, hepsi bu, değil mi? Bu yaklaşım işe yarayacaktır, ancak zahmetli ve zaman alıcıdır. Bu örnekte, bir değişkenin değerini bulmak için debugger.html kullanarak uygulamada adım atacağız.

debugger.html ile, satıra bir kesme noktası ekleyerek kodunuzun daha derinlerine inebilirsiniz. Kesme noktaları, kodu görüntüleyebilmeniz için hata ayıklayıcıyı duraklatır. Bu örnekte, app.js dosyasının 13. satırına bir kesme noktası ekleyeceğiz.

Şimdi görevi listeye ekleyin. Kod addTodo işlevinde duracak ve koddaki alanın değerine bakabiliriz. Değerini vb. görmek için bir değişkenin üzerine gelin. Bağlantıları, uygulamaları, çocukları vb. şu şekilde görüntüleyebilirsiniz:

Aynı bilgiler Alanlar panelinde de bulunabilir.

Komut dosyası duraklatıldığında, araç çubuğunu kullanarak satırları arasında gezinebilirsiniz. Sürdür / Duraklat düğmeleri tam olarak söylediklerini yapar. Adım düğmesi geçerli kod satırını yürütür, Enter - işleve girer, Çıkış - çağrısından çıkılana kadar geçerli işlevi yürütür.

İzleme ifadelerini kullanarak da bir mono değişkenin değerini izleyin. Sadece İzleme İfadeleri kutusuna bir ifade girin ve hata ayıklayıcı, kodunuz çalışırken bunu izleyecektir. Yukarıdaki örnekte, başlık ve yapılacaklar ifadeleri ekleyebilirsiniz ve hata ayıklayıcı, uygun olduğunda değerleri çıkarır. Özellikle şu durumlarda faydalıdır:

Kodu incelersiniz ve değer değişimini izlersiniz;

Aynı kodda birçok kez hata ayıklıyorsunuz ve genel değerleri görmek istiyorsunuz;

Bu lanet düğmenin neden çalışmadığını anlamaya çalışıyorsun.

Debugger.html, React / Redux uygulamalarında hata ayıklamak için de kullanılabilir. Nasıl çalışır:

Hata ayıklamak istediğiniz bileşene gidin.

Soldaki bileşen şemasına bakın (bir sınıftaki fonksiyonlar).

Uygun işlevlere kesme noktaları ekleyin.

Bileşenin özelliklerini ve durumlarını duraklatın ve izleyin.

Çağrı yığını basitleştirilmiştir, böylece uygulama kodunun çerçeveyle karıştırıldığını görürsünüz.

debugger.html, hatalara neden olabilecek karmaşık veya küçültülmüş kodu görüntülemenize olanak tanır. Özellikle React / Redux gibi genel çerçevelerle çalışırken kullanışlıdır. Hata ayıklayıcı, duraklattığınız bileşenin farkındadır ve basitleştirilmiş bir çağrı yığını, bileşen şeması ve özellikler gösterir. Aşağıda geliştirici Amit Zur, JS Kongress'te Firefox'ta kod hata ayıklayıcısını nasıl kullandığını açıklıyor:

Yeni debugger.html dosyasına ayrıntılı bir bakış için Mozilla Developer Playground'a bakın. Geliştiricilerin bir kod hata ayıklama aracını etkili bir şekilde nasıl kullanacaklarını öğrenmelerine yardımcı olmak için bir dizi öğretici oluşturduk.

Açık kaynak geliştirici araçları

debugger.html projesi, Firefox DevTools'un tamamen elden geçirilmesiyle birlikte yaklaşık 2 yıl önce başlatıldı. DevTools'u modern teknolojilere dönüştürmek ve onları dünyanın her yerindeki geliştiricilere açmak istedik. Ve teknoloji açık kaynak olduğu için, Mozilla'daki küçük grubun asla hayal bile edemeyeceği bir şeye özgürce büyüyebilir.

JS, herhangi bir gelişmiş web uygulamasının belkemiğidir, bu nedenle güçlü bir hata ayıklayıcı, araç kutusunun temel bir parçası olmuştur. Hızlı, kullanımı kolay, uyarlanabilir - herhangi bir yeni JS çerçevesinin hatalarını ayıklayabilen bir şey yaratmak istedik. Topluluğa daha yakın çalışmak istediğimiz için popüler web teknolojilerini kullanmaya karar verdik. Bu yaklaşım, hata ayıklayıcının kendisini iyileştirecektir - Web paketini benimsersek ve derleme aracını ve kaynak haritalarını dahili olarak kullanmaya başlarsak, kaynak eşleştirmeyi ve çalışırken yeniden yüklemeyi geliştirmek isteriz.

debugger.html React, Redux ve Babel ile yazılmıştır. React bileşenleri hafiftir, test edilebilir ve tasarımı kolaydır. Hızlı UI prototipleme ve ortak bileşenlerin belgelenmesi için React Storybook kullanıyoruz. Bu, farklı JS çerçeveleriyle (React gibi) çalışmayı kolaylaştırır. Babel'in ön ucu, Bileşen sınıfını ve işlevlerini sol kenar çubuğunda göstermek gibi şeyler yapmanıza olanak tanır. Ayrıca, kodu değiştirirseniz hareket etmeyecekleri şekilde işlevlere kesme noktaları da ayarlayabiliriz.

Redux eylemleri, UI için saf API'dir. Ancak, bağımsız bir CLI JS Hata Ayıklayıcı oluşturmak için de kullanılabilirler. Redux deposu, geçerli hata ayıklama durumunu sorgulamak için seçicilere sahiptir. Birim testlerimiz Redux eylemlerini çalıştırır ve tarayıcı yanıtlarını taklit eder. Entegrasyon testleri, tarayıcıyı Redux hata ayıklayıcı eylemleriyle güçlendirir. İşlevsel mimarinin kendisi test için tasarlanmıştır.

Her adımda Mozilla geliştirici topluluğuna güvendik. Proje GitHub'da yayınlandı ve ekibimiz dünyanın dört bir yanındaki geliştiricilere ulaştı ve yanıt verdiler. Başlangıçta, otomatik testler topluluk için kritik öneme sahipti. Testler, kolayca gözden kaçabilecek davranışları geriletti ve belgeledi. Bu nedenle ilk adımlardan biri Redux deposu için Redux eylemleri ve Akış türleri için birim testleri yazmaktı. Aslında topluluk, Flow ve Jest kapsamının her dosyanın yazıldığından ve test edildiğinden emin olmasına yardımcı olmasını sağladı.

Geliştiriciler olarak, daha fazla geliştirici dahil olduğunda araçların daha güçlü olduğuna inanıyoruz. Çekirdek ekibimiz her zaman küçüktü (2 kişi), ancak ortalama olarak haftada 15 asistan vardı. Topluluk bize karmaşıklıkları öngörmemize ve hayal bile edemeyeceğimiz özellikler yazmamıza yardımcı olan farklı bakış açıları verdi. Artık 24 kitaplık için çağrı yığınlarını biçimlendiriyoruz. Birçoğundan haberimiz bile yoktu. Ayrıca kaynak ağaçta Webpack ve Angular haritalarını da gösteriyoruz.

Daha fazla kişinin kullanabilmesi ve geliştirebilmesi için tüm Firefox Geliştirici Araçları'nı GitHub'a taşımayı planlıyoruz. Yardımınızı memnuniyetle kabul edeceğiz. GitHub'da projemizin debugger.html sayfasına gidebilirsiniz. Hata ayıklayıcıyı makinenizde çalıştırmak için tam bir talimat listesi yazdık, burada istediğinizi değiştirebilirsiniz. Herhangi bir şey için JS kodunda hata ayıklamak için kullanın - tarayıcılar, terminaller, sunucular, telefonlar, robotlar. Nelerin iyileştirilebileceğini görüyorsanız, bize GitHub'dan yazın.

Son birkaç yılda, jQuery ve Prototype gibi çeşitli kitaplıkların ortaya çıkması sayesinde JavaScript, web projeleri komut dosyası yazmak için önde gelen dil olarak ortaya çıktı. Artan popülerlik ve kullanım kolaylığı, binlerce JavaScript satırı içeren Gmail gibi tam teşekküllü uygulamalara yol açtı ve geliştirme ekibine takım yeterliliği açısından artan talepler getirdi.

Uygulamaların artan karmaşıklığının bir sonucu olarak, bir hatanın kaynağını hızlı ve verimli bir şekilde bulabilen güçlü hata ayıklama araçlarına ihtiyaç duyulmaktadır. Bir fonksiyon kullanarak değişken değerlerin basit çıktısı Alarm () alaka düzeyini kaybetmiştir.

Bu ders, JavaScript kodunda hata ayıklamayı daha kolay bir süreç haline getirmeye yardımcı olan modern geliştirici araçlarının özelliklerine kısa bir genel bakış sağlar. Odak noktası Chrome tarayıcısının ve FireFox için Firebug eklentisinin yetenekleri olacaktır, ancak açıklanan özelliklerin çoğu Dragonfly for Opera gibi diğer araçlarda mevcuttur.

Konsol - genel görünüm

Çoğu geliştirici programında programcının en iyi arkadaşı konsol olacaktır. Çok amaçlı panel, hata mesajlarını günlüğe kaydetmek, DOM'yi kontrol etmek, JavaScript kodunda hata ayıklamak ve diğer birçok görev için kullanılır. Tarayıcıya bağlı olarak konsol farklı komutlarla çağrılır (menüden doğrudan seçim hariç):

  • Chrome tarayıcısında ve Dragonfly for Opera'da - Ctrl + Shift + I
  • Ateşböceği - F12

Konsol, komut dosyasının yürütülmesi sırasında algılanan koddaki hataları otomatik olarak görüntüler. Dosya ve satır, hatanın yanında gösterilir ve hataya tıklamak, giriş odağını karşılık gelen konuma taşır.

Verileri konsola çıkarıyoruz

Konsol, yalnızca komut dosyası kodundaki hataları gösteremez. Konsol API'sini ve Komut Satırı API'sini kullanarak, konsola veri çıkışını kontrol edebilirsiniz. En ünlü ve kullanışlı ekip .kayıt ().

Form kodu tasarlarken, kodun doğru çalıştığını doğrulamak için değişkenlerin değerlerini bilmek oldukça faydalıdır. İşlevi kullanmak yaygın bir uygulamadır. Alarm () görsel kontrol için. Ancak, bu yöntemin kullanılması, iletişim kutusundaki düğmeye tıklanana kadar kodun geri kalanının yürütülmesini engeller.

Modern çözüm yöntemi kullanmaktır. konsol.log değişkenlerin değerlerini konsol paneline veren:

Console.log ("Kaptan Günlüğü"); // konsol paneline “Kaptan Günlüğü” çıktısı verir

Yöntem, hesaplanan değerleri görüntülemek için kullanılabilir:

calcPhotos () işlevi (total_photos_diff = total_photos - prev_total_photos; // Değişken değerleri konsola yazdırın console.log (total_photos_diff);)

Bu yaklaşımın diyalog yöntemine göre avantajı Alarm () kodun yürütülmesinin kesintiye uğramaması ve geliştiricinin verilerdeki değişiklikleri gerçek zamanlı olarak gözlemlemek için değişkenlerin değerlerini birkaç kez görüntüleyebilmesidir.

Var t = 3, p = 1; function calcPhotos (total_photos, prev_total_photos) (var total_photos_diff = total_photos - prev_total_photos; // Değerleri konsola yazdırın console.log (total_photos_diff); // Değerleri güncelleyin t = t * 1.3; p = p * 1.1 ;) setInterval (fonksiyon () (calcPhotos (t, p);), 100);

Mesajları vurgulama

Yukarıdaki örnekte loop birçok değişken değerini konsola yazdıracaktır. Ancak, kodda özel dikkat gerektiren alanları etkili bir şekilde vurgulamak için farklı verileri görsel olarak ayırmak genellikle uygundur. Konsol API'sinin bu görevleri gerçekleştirmek için birkaç yöntemi vardır.

konsol.bilgi (): Bilgi simgesini görüntüler ve sunulacak bilgileri vurgular. Bu yöntem, çeşitli olaylar hakkında uyarı vermek için kullanışlıdır.

konsol.uyar (): Bir uyarı simgesi görüntüler ve sunulacak bilgileri vurgular. Sınırları aşan parametreler hakkında bilgi almak için kullanışlıdır.

konsol.hata (): "Hata" simgesini görüntüler ve sunulacak bilgileri vurgular. Hataları ve kritik durumları raporlamak için kullanımı uygundur.

Not: Chrome geliştirici aracının, bilgileri konsolda farklı şekilde görüntüleme yolu yoktur.

Konsola bilgi çıkışı sağlamak için çeşitli yöntemler kullanmak, verileri görselleştirmenize olanak tanır. Bilgi sunumu, bloklar halinde birleştirilerek geliştirilebilir. Kullanılan yöntem konsol.grup () :

// İlk grup console.group ("Fotoğraf hesaplaması"); konsol.info ("Toplam fark şimdi" + total_photos_diff); konsol.log (total_photos_diff); konsol.grupEnd(); // İkinci grup console.group ("Artan değişken"); konsol.log ("Toplam fotoğraflar şimdi:" + t); konsol.log ("Önceki toplam fotoğraf şimdi:" + p); konsol.grupEnd();

Bu örnek, konsoldaki bilgileri gruplayacaktır. Görsel temsil farklı tarayıcılarda farklılık gösterecektir, aşağıdaki resim Dragonfly for Opera'daki görünümü göstermektedir:

Yukarıdaki örnekler, Konsol API'sinden kullanılabilen yöntemlerin küçük bir listesini sağlar. Resmi Firebug sayfasında belgelenmiş başka birçok yararlı yöntem vardır.

Komut dosyası ilerlemesini kesintiye uğratın

Konsol çıktısı yararlıdır, ancak kod çok hızlı çalışabilir ve yine de birçok değişkeni takip edebilir.

Hata ayıklama sürecini kolaylaştırmak için, verilere erişim elde etmek için kod yürütmeyi belirli bir noktada kesebilirsiniz. Bunun için kesme noktaları kullanılır.

Kesme noktalarıyla çalışma

Bir kesme noktası ayarlamak için "Komut Dosyaları" sekmesine gidin ve listeden gerekli komut dosyasını seçin. Şimdi, komut dosyasının yürütülmesini kesmeniz gereken satırı arıyoruz ve etkinleştirmek için satır numarasına sahip alana tıklayın - görsel bir gösterge görünecektir. Şimdi sayfayı yeniden yüklüyoruz ve kod yürütme verilen noktada kesintiye uğrayacak:

Yürütme kesintiye uğradığında, fare imlecini herhangi bir değişkenin üzerine getirebilirsiniz ve hata ayıklayıcı, geçerli andaki değerle bir ipucu görüntüler.

Ardından, kenar çubuğunun en üstünde bulunan özel düğmeleri kullanarak kodu yürütmeye devam edebilirsiniz:

Kenar çubuğunda, yerel ve global değişkenlerin dinamikleri dahil olmak üzere kodunuzun durumunu izleyebilirsiniz.

Koşullu kesme noktaları

Kodun hata ayıklama sürecinde, bazen yalnızca belirli koşullar karşılandığında kodun yürütülmesini durdurmak gerekir. Örneğin, betiğinizde her yinelemesi 50 milisaniye süren bir döngü varsa, yalnızca 300 yinelemeye ihtiyacımız olduğunda, her adımda durduktan sonra yürütme sürecini başlatmak çok elverişsiz olacaktır. Bu gibi durumlarda koşullu kesintiler vardır.

Şekildeki örnekte, değişkenin değeri gelene kadar kod yürütmesi kesintiye uğramayacaktır. total_photos_diff 200'den fazla olmayacaktır.

Koşullu bir kesme noktasını etkinleştirmek için kesme noktasına sağ tıklayın ve kesme noktası koşullarını düzenlemek için iletişim kutusunu görüntülemek için "Kesme Noktasını Düzenle" öğesini seçin.

Kodda bir kesme noktası ayarlama

Tarayıcıdaki geliştirici aracı arayüzünü kullanarak kesme noktaları ayarlamak her zaman uygun değildir. Bazen hata ayıklayıcıyı özel bir komutla koddan başlatmak daha kolaydır. Aşağıdaki örnek, belirli koşullar karşılandığında kodunuzun yürütülmesini nasıl durdurabileceğinizi gösterir:

if (total_photos_diff> 300) (hata ayıklayıcı; // hata ayıklayıcıyı başlat ve kod yürütmeyi kes)

Kod yürütmeyi kesmenin diğer yolları

Bir kesme noktası kullanmaya ek olarak, geliştirici aracı, farklı durumlarda kod yürütmeyi durdurmak için başka seçenekler sunar.

DOM değişikliklerinde durdurma

DOM değişikliklerini işleyen bir kod parçasında hata ayıklamanız gerekiyorsa, geliştirici aracı size bir DOM düğümü değiştiğinde kod yürütmeyi durdurmanın bir yolunu sunar.

HTML kod panelinde, istediğiniz öğeye sağ tıkladığınızda, DOM değiştiğinde kodu durdurma (öznitelik değiştirme, alt öğe ekleme/çıkarma, öğe silme) koşullarını seçebilirsiniz. Kodu yeniden yükleyin ve öğeler değiştiğinde kod yürütme duracaktır.

Tüm veya işlenmeyen özel durumlar üzerinde dur

Çoğu geliştirici aracı, istisnalar atıldığında komut dosyasının yürütülmesini durdurmanıza izin verir. Chrome'da bu işlev, arayüzün alt satırındaki "Duraklat" simgesi kullanılarak etkinleştirilebilir.

Kod yürütmenin hangi istisnalar için duracağını seçebilirsiniz. Aşağıdaki örnek, bir işlenmeyen ve bir işlenen (try | catch bloğu) istisnasını göstermektedir:

Var t = 3, p = 1; function calcPhotos (total_photos, prev_total_photos) (var total_photos_diff = total_photos - prev_total_photos; // Birinci grup console.info ("Toplam fark şimdi" + total_photos_diff); // Değerleri güncelle t = t + 5; p = p + 1 ; // İşlenmeyen istisna if (total_photos_diff> 300) (throw 0;) // İşlenmeyen istisna if (total_photos_diff> 200) (deneyin ($$ ("# nonexistent-element"). Gizle ();) catch (e) ( konsol.hata (e);))) setInterval (işlev () (calcPhotos (t, p);), 50);

Çağrı yığınına giriş

Komut dosyanızı yürütürken bir hata görünürse, yukarıdaki yöntemler, hatayı analiz etmek için programı durdurmanıza yardımcı olacaktır. Ancak nedenin nerede saklandığı her zaman hemen belli olmaz.

Komut dosyası kesintiye uğradığında, Çağrı yığını da dahil olmak üzere yararlı bilgiler sağlayan sağ bölmeye bakın.

Çağrı yığını, hatanın oluştuğu ve kod yürütmenin durdurulduğu noktaya götüren tam yolu gösterir.

Aşağıdaki resimde, fonksiyonda kasıtlı olarak hata oluşturulmuştur. artış Değerleri (), bu da kod yürütmenin durmasına neden oldu. geliştirici aracı, potansiyel olarak tehlikeli yerleri belirlemenize olanak tanıyan eksiksiz çağrı yığınını gösterir.

Çözüm

Bu ders, aktif olarak kullanmayı planladığınız aracın belgelerine ilişkin daha ayrıntılı bir çalışma için bir başlangıç ​​noktasıdır.

Console.log ile hata ayıklamayı sonsuza kadar unutun! Chrome Geliştirici Araçları'nda Kod Hatalarını Ayıklamak için Kesme Noktalarını Nasıl Kullanacağınızı Öğrenin

Bir makalenin çevirisiBrandon Morelli : Chrome DevTools ile JavaScript'te Hata Ayıklamayı Öğrenin ... Yazarın izniyle yayınlanmıştır.

Hataları bulmak ve düzeltmek zor olabilir. Kodunuzun doğru şekilde çalışmasını sağlamak için konsol.log () işlevini kontrolden çıkarmaya cazip gelebilirsiniz. Bitti!

Bu makale, hata ayıklamanın doğru yolu hakkındadır! Kesme noktaları belirlemek ve kodunuzu keşfetmek için Chrome geliştirici araçlarını nasıl kullanacağınızı öğrenin. Bu yaklaşım genellikle kodunuzdaki hataları bulmanın ve düzeltmenin en etkili yoludur.

Bu eğitici, belirli bir sorunun nasıl hata ayıklanacağını gösterir, ancak benzer bir iş akışı, her tür JavaScript hatasında hata ayıklamak için kullanışlıdır.

Adım 1: hatayı yeniden oluşturma

Bir hatayı yeniden oluşturmak - hata ayıklamanın ilk adımı - ortaya çıkmasına neden olan bir dizi eylemi algılamak anlamına gelir. Hatayı birçok kez yeniden oluşturmanız gerekebilir, bu nedenle gereksiz adımları ortadan kaldırmanız önerilir.

Bu eğitimde düzelteceğimiz hatayı yeniden oluşturmak için aşağıdaki talimatları izleyin:

  • İşte bu makale için birlikte çalışacağımız web sayfası. Yeni bir sekmede açın: DEMO.
  • için demo 1 numara 5 girin.
  • için 1 girin 2 numara.
  • Tıklamak 1 Numarayı ve 2 Numarayı Ekle.
  • Girişlerin ve düğmelerin altındaki etikete bakın. 5+1=51 diyor.

Hata. Bu yanlış sonuç. Sonuç 6 olmalıdır. Düzelteceğimiz hata bu.

2. Adım: Bir Kesme Noktası Kullanarak Kod Yürütmeyi Askıya Alın

DevTools, kodunuzu yürütmenin ortasında duraklatmanıza ve değerleri almanıza olanak tanır tümünden Bu noktada değişkenler. Kodu duraklatma aracına kesme noktası denir. Şimdi dene:

  • Demoya geri dönün ve Command + Option + I (Mac) veya Control + Shift + I (Windows, Linux) tuşlarına basarak DevTools'u açın.
  • sekmeye git Kaynaklar.
  • Tıklamak Olay İşleyici Kesme Noktaları Menüyü genişletmek için DevTools, aşağıdakiler gibi olay kategorilerinin bir listesini sunar: Animasyon ve Pano.
  • Etkinlik kategorisini genişlet Fare.
  • Lütfen seçin Tıklayın.
  • Demoya dönerek tekrar basın 1 Numarayı ve 2 Numarayı Ekle... DevTools, paneldeki kod satırını duraklatacak ve vurgulayacaktır Kaynaklar:
işlev onClick () (

Tıklamayı seçtiğinizde, tüm tıklama olaylarına dayalı bir kesme noktası ayarlarsınız. tıklandığında herhangi düğümü ve bu düğümün bir tıklama olay işleyicisi var, DevTools bu düğüm için tıklama işleyici kodunun ilk satırında yürütmeyi otomatik olarak durdurur.

3. Adım: Kodu inceleyin

Hataların en yaygın nedenlerinden biri, komut dosyasının yanlış sırada yürütülmesidir. Kodu inceleyerek, her seferinde bir satır kodu çalıştırabilir ve beklenmedik bir sırada tam olarak nerede yürütüldüğünü anlayabilirsiniz. Şimdi dene:

  • panelde Kaynaklar DevTools'ta tıklayın Sonraki işlev çağrısına adım atın.
Sonraki işlev çağrısı düğmesine adım atın

Bu düğme, onClick () işlevini bir seferde bir satır yürütmenize izin verir. DevTools yürütmeyi durduracak ve aşağıdaki kod satırını vurgulayacaktır:

If (inputsAreEmpty()) (

  • Şimdi düğmeye basın Sonraki işlev çağrısının üzerine çıkın.
Sonraki işlev çağrısı düğmesinin üzerine gelin

Bu, DevTools'a inputAreEmpty () işlevini girmeden yürütmesini söyler. DevTools'un birkaç satır kod atladığını unutmayın. Bunun nedeni inputAreEmpty() öğesinin false olarak değerlendirilmesidir, bu nedenle if deyim bloğu yürütülmez.

Kod araştırmasının arkasındaki ana fikir budur. get-started.js koduna bakarsanız, hatanın muhtemelen updateLabel () işlevinde bir yerde olduğunu görebilirsiniz. Her kod satırını incelemek yerine, kodunuzu hataya daha yakın bir yerde duraklatmak için farklı türde bir kesme noktası kullanabilirsiniz.

4. Adım: farklı bir kesme noktası ayarlayın

En yaygın kod kesme noktası satırı, duraklatmak istediğiniz belirli bir kod satırına sahip olduğunuz zamandır. Şimdi dene:

  • updateLabel() içindeki son kod satırına bir göz atın:
label.textContent = addend1 + "+" + addend2 + "=" + toplam;

Kodun solunda, bu belirli satırın numarasını görebilirsiniz: 32 ... Üstüne tıkla. DevTools, numaranın üzerine mavi bir simge yerleştirecektir. Bu, bu satırda bir kesme noktası olduğu anlamına gelir. DevTools şimdi her zaman ondan önce duraklayacak.

  • Düğmeye bas Komut dosyası yürütmeye devam et:
Komut dosyası yürütmeyi sürdür düğmesi

Komut dosyası, bir kesme noktasıyla karşılaşana kadar çalışacaktır.

  • updateLabel () içinde zaten yürütülmüş kod satırlarına bir göz atın. DevTools, addend1, addend2 ve sum değerlerini çıkarır.

Toplam değer şüpheli görünüyor. Bir dize olarak değerlendiriliyor gibi görünüyor, ancak bir sayı olması gerekiyor. Hatamızın nedeni bu olabilir.

Adım 5: Değişken Değerlerini Kontrol Etme

Hataların bir diğer yaygın nedeni de bir değişkenin veya fonksiyonun beklenenden farklı değerler üretmesidir. Birçok geliştirici, değerlerin zaman içinde nasıl değiştiğini görmek için console.log() kullanır, ancak console.log() iki nedenden dolayı sıkıcı ve verimsiz olabilir. İlk olarak, çok sayıda console.log () çağrısı ile kodunuzu manuel olarak düzenlemeniz gerekebilir. İkincisi, hatayla hangi değişkenin ilişkili olduğunu tam olarak bilemeyebilirsiniz, bu nedenle birçok değişkeni taahhüt etmeniz gerekebilir.

İzle İfadeleri, konsol.log () için DevTools'un bir alternatifidir. Değişkenlerin zaman içindeki değerini izlemek için İzle İfadeleri'ni kullanın. Adından da anlaşılacağı gibi, İzle İfadeleri sadece değişkenlerle sınırlı değildir. Geçerli herhangi bir JavaScript ifadesini Watch Expression'da saklayabilirsiniz. Şimdi dene:

  • panelde Kaynaklar DevTools tıklaması İzlemek... Bölüm genişleyecektir.
  • Tıklamak İfade Ekle.
İfade Ekle düğmesi
  • typeof toplamı girin.
  • Enter'a basın. DevTools şunu gösterecektir: typeof sum: "string". Kolonun sağındaki değer, Saat İfadenizin sonucudur.

Beklendiği gibi, toplam bir dize olarak değerlendirilir, ancak bir sayı olmalıdır. Demodaki hatamızın nedeni budur.