Yanıtlar:
Bu bir jQuery özelliği değil, hata ayıklama amaçlı bir özelliktir. Örneğin, bir şey olduğunda konsola bir şey kaydedebilirsiniz. Örneğin:
$('#someButton').click(function() {
console.log('#someButton was clicked');
// do something
});
Ardından #someButton was clicked
düğmeyi tıkladığınızda Firebug'un "Konsol" sekmesinde (veya başka bir aracın konsolu - örneğin Chrome'un Web Denetçisi) görürsünüz.
Bazı nedenlerden dolayı, konsol nesnesi kullanılamayabilir. O zaman bunun olup olmadığını kontrol edebilirsiniz - bu, üretime dağıtırken hata ayıklama kodunuzu kaldırmanız gerekmediği için yararlıdır:
if (window.console && window.console.log) {
// console is available
}
if (console.log)
(veya çift if (console && console.log)
) konsol yoksa hala hata verir. Kullanmanız window.console
( window
garanti edildiği gibi ) kullanmalı ve bir seferde yalnızca bir derinlik seviyesi kontrol etmelisiniz.
Konsolu görebileceğiniz yerler! Hepsini bir cevapta tutmak için.
Firefox
(artık Firefox'un yerleşik geliştirici araçlarını Ctrl + Shift + J'yi de kullanabilirsiniz (Araçlar> Web Geliştiricisi> Hata Konsolu), ancak Firebug çok daha iyi; Firebug'u kullanın)
Safari ve Chrome
Temelde aynı.
https://developers.google.com/chrome-developer-tools/docs/overview
https://developer.apple.com/technologies/safari/developer-tools.html
Internet Explorer
IE9 veya IE10'da IE7 ve IE8 hatalarını ayıklamak için uyumluluk modlarını kullanabileceğinizi unutmayın
http://msdn.microsoft.com/en-us/library/ie/gg589507(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/dd565628(v=vs.85).aspx
IE7 için IE6'daki konsola erişmeniz gerekiyorsa Firebug Lite yer işareti uygulamasını kullanın
http://getfirebug.com/firebuglite/ kararlı yer işareti arayın
http://en.wikipedia.org/wiki/Bookmarklet
Opera
http://www.opera.com/dragonfly/
iOS
Tüm iPhone'lar, iPod touch ve iPad'ler için çalışır.
Artık iOS 6 ile, cihazınızı takarsanız OS X'te Safari üzerinden konsolu görüntüleyebilirsiniz. Ya da emülatör ile bunu yapabilirsiniz, bir Safari tarayıcı penceresi açın ve "Geliştir" sekmesine gidin. Burada Safari denetçisinin cihazınızla iletişim kurmasını sağlamak için seçenekler bulacaksınız.
Windows Phone, Android
Her ikisinde de yerleşik konsol ve yer imi yeteneği yoktur. Bu yüzden http://jsconsole.com/ type: listen'i kullanırız ve HTML'nize yerleştirmeniz için bir komut dosyası etiketi verir. O andan itibaren konsolunuzu jsconsole web sitesinde görüntüleyebilirsiniz.
iOS ve Android
Ayrıca , uygun tarayıcı eklentilerini kullanarak herhangi bir cihazdaki web denetleyici araçlarına ve konsola erişmek için http://html.adobe.com/edge/inspect/ adresini kullanabilirsiniz .
Eski tarayıcı sorunları
Kodunuzda console.log kullanırsanız ve aynı zamanda geliştirici araçlarını açmazsanız son IE sürümleri kilitlenir. Neyse ki kolay bir düzeltme. Kodunuzun üst kısmında aşağıdaki kod snippet'ini kullanın:
if(!window.console){ window.console = {log: function(){} }; }
Bu, konsolun mevcut olup olmadığını kontrol eder ve eğer değilse, boş işlevli bir nesneye ayarlar log
. Bu şekilde window.console ve window.console.log hiçbir zaman tam olarak gerçek değildirundefined.
Kodunuzu incelemek için Firebug gibi bir araç kullanırsanız, konsola kaydedilen mesajları görüntüleyebilirsiniz. Diyelim ki bunu yaptınız:
console.log('Testing console');
Firebug'da konsola eriştiğinizde (veya kodunuzu incelemek için hangi aracı kullanmaya karar verirseniz), işleve günlüğe kaydetmesini istediğiniz mesajı görürsünüz. Bu, özellikle bir işlevin yürütülüp yürütülmediğini veya bir değişkenin düzgün bir şekilde iletilip iletilmediğini görmek istediğinizde yararlıdır. Aslında kodunuzda neyin yanlış gittiğini anlamak oldukça değerlidir.
Firebug veya Developer Tools (Chrome / Safari) gibi tarayıcının javascript konsoluna bir günlük mesajı gönderecek ve yürütüldüğü satırı ve dosyayı gösterecektir.
Dahası, bir jQuery Nesnesi çıkardığınızda, DOM'daki o öğeye bir başvuru içerir ve tıklandığında Öğeler / HTML sekmesinde o öğeye gider.
Çeşitli yöntemler kullanabilirsiniz, ancak Firefox'ta çalışması için Firebug'un açık olması gerektiğine dikkat edin, aksi takdirde tüm sayfa çökecektir. Günlüğe kaydettiğiniz şey ister değişken, dizi, nesne veya DOM öğesi olsun, nesnenin prototipi de dahil olmak üzere tam bir arıza verecektir (etrafında bir dürtme yapmak her zaman ilginçtir). İstediğiniz kadar bağımsız değişken de ekleyebilirsiniz; bunların yerine boşluklar gelir.
console.log( myvar, "Logged!");
console.info( myvar, "Logged!");
console.warn( myvar, "Logged!");
console.debug(myvar, "Logged!");
console.error(myvar, "Logged!");
Bunlar her komut için farklı logolarla gösterilir.
Ayrıca console.profile(profileName);
bir işlevi, komut dosyasını vb. Profillemeye başlamak için de kullanabilirsiniz . Ve sonra bitirin console.profileEnd(profileName);
ve Chrome'daki Profiller sekmesinde görünecektir (FF ile bilmiyorum).
Tam bir referans için http://getfirebug.com/logging adresine gidin ve okumanızı tavsiye ederim. İzler, gruplar, profil oluşturma, nesne denetimi.
Bu yardımcı olur umarım!
console.log("x:", x)
iyi console.log("x:" + x)
? A ,
okunması daha kolay olduğu için hataya daha az yatkın +
mı?
+
kesinlikle kullanıyor olmalı , ancak konsol işlevlerinde virgül de kullanabileceğinizi göstermek istedim. Ayrıca, değişkenlerin ikisi de tamsayı veya dizi ise sorunlardan kaçınır.
console.log("x:", x)
çünkü ne zaman, önemli ölçüde daha iyidir x
nesne veya dizi (ya da bir şey ama dize), bu dizeye dönüştürme olmadan, doğru görüntülenen alır.
JQuery ile ilgisi yoktur ve kullanmak isterseniz,
if (window.console) {
console.log("your message")
}
Bu nedenle, kullanılabilir olmadığında kodunuzu kırmazsınız.
Yorumda önerildiği gibi, bunu tek bir yerde yürütebilir ve sonra console.log
normal olarak kullanabilirsiniz
if (!window.console) { window.console = { log: function(){} }; }
if(!window.console){ window.console = function(){}; }
yerine tek bir yerde, sonra normal olarak console.log kullanmanızı öneririz .
console.log
hata ayıklama bilgilerini bazı tarayıcılarda konsola kaydeder (Firebug yüklü Firefox, Chrome, IE8, Firebug Lite yüklü herhangi bir şey). Firefox'ta, nesneleri incelemenize veya HTML öğelerinin düzenini veya diğer özelliklerini incelemenize izin veren çok güçlü bir araçtır. JQuery ile ilgili değildir, ancak jQuery ile kullanılırken yaygın olarak yapılan iki şey vardır:
Firebug için FireQuery uzantısını yükleyin . Bu, diğer avantajların yanı sıra, jQuery nesnelerinin günlüğe kaydedilmesini daha güzel gösterir.
jQuery'nin zincirleme kod kurallarına daha uygun bir sarıcı oluşturun.
Bu genellikle böyle bir şey anlamına gelir:
$.fn.log = function() {
if (window.console && console.log) {
console.log(this);
}
return this;
}
daha sonra şöyle çağırabilirsiniz
$('foo.bar').find(':baz').log().hide();
jQuery zincirlerini kolayca kontrol etmek için.
Bir karışıklık bazen, bir metin mesajını console.log kullanarak nesnelerinizden birinin içeriğiyle birlikte günlüğe kaydetmek için, ikisinin her birini farklı bir bağımsız değişken olarak geçirmeniz gerektiğidir. Bu, çıktıları birleştirmek için + operatörünü kullanacak olmanız durumunda .toString()
, nesnenizin yöntemini dolaylı olarak çağıracağından, bunları virgülle ayırmanız gerektiği anlamına gelir . Çoğu durumda bu açıkça geçersiz kılınmaz ve tarafından devralınan varsayılan uygulama Object
herhangi bir yararlı bilgi sağlamaz.
Konsolda denemek için örnek:
>>> var myObj = {foo: 'bar'}
undefined
>>> console.log('myObj is: ', myObj);
myObj is: Object { foo= "bar"}
bilgilendirici kısa mesajı nesnenin içeriği ile birleştirmeyi denerseniz, şunları elde edersiniz:
>>> console.log('myObj is: ' + myObj);
myObj is: [object Object]
Bu nedenle, console.log'un aslında istediğiniz kadar argüman aldığını unutmayın.
console.log
Sayfanıza hata ayıklama bilgileri eklemek için kullanın .
Birçok kişi alert(hasNinjas)
bu amaçla kullanır , ancak console.log(hasNinjas)
çalışması daha kolaydır. Bir uyarı kullanıldığında, kullanıcı arabirimini engelleyen kalıcı bir iletişim kutusu açılır.
Düzenleme: Baptiste Pernet ve Jan Hančič ile anlaşılırsa, window.console
ilk olarak tanımlanıp tanımlanmadığını kontrol etmek için çok iyi bir fikir olduğunu kabul edersiniz, böylece hiçbir konsol mevcut değilse kodunuz kırılmaz.
Bir örnek - varsayalım, programınızı hangi kod satırını çalıştırabileceğinizi (kırmadan önce!) Bilmek istediğinizi yazmanız yeterlidir.
console.log("You made it to line 26. But then something went very, very wrong.")
Firefox için Firebug veya WebKit tarayıcılarında JavaScript konsolu ile JavaScript kodunda hata ayıklamak için kullanırsınız .
var variable;
console.log(variable);
Bir dizi veya nesne olsa bile, değişkenin içeriğini görüntüler.
PHPprint_r($var);
için benzer .
if (!window.console) { window.console = { log : function() {} }; }
. Bu, ara sıra hata ayıklama deyimini kaldırmayı unutmadan kurtulmanızı sağlar.
Dikkat: üretim kodunuzda konsola çağrı yapmak sitenizin Internet Explorer'da bozulmasına neden olur. Asla ambalajından çıkarmayın. Bkz. Https://web.archive.org/web/20150908041020/blog.patspam.com/2009/the-curse-of-consolelog
İlk günlerde JS hata ayıklama alert()
işlevi aracılığıyla gerçekleştirildi - şimdi eski bir uygulamadır.
Bu console.log()
, Webkit veya Firebug gibi hata ayıklama konsolunda oturum açmak için bir mesaj yazan bir işlevdir . Bir tarayıcıda ekranda hiçbir şey görmezsiniz. Hata ayıklama konsoluna bir ileti kaydeder. Yalnızca Firebug yüklü Firefox'ta ve Webkit tabanlı tarayıcılarda (Chrome ve Safari) kullanılabilir. Tüm IE sürümlerinde iyi çalışmaz .
Konsol nesnesi, DOM'nin bir uzantısıdır.
console.log()
Sadece geliştirme ve hata ayıklama sırasında kodunda kullanılmalıdır.
Birisinin console.log()
üretim sunucusundaki javascript dosyasında kalması kötü bir uygulama olarak kabul edilir .
Tarayıcınız hata ayıklamayı destekliyorsa, JavaScript değerlerini görüntülemek için console.log () yöntemini kullanabilirsiniz.
Tarayıcınızda hata ayıklamayı ile etkinleştirin F12ve hata ayıklayıcı menüsünden "Konsol" u seçin.
JavaScript'te konsol. Çalışmayan bir JavaScript programını düzeltmeye veya "hata ayıklamaya" çalışın ve console.log () komutunu kullanarak pratik yapın. Kullandığınız tarayıcıya bağlı olarak JavaScript konsoluna erişmenize yardımcı olacak kısayollar vardır:
Chrome Konsolu Klavye Kısayolları
Windows: Ctrl+ Shift+ J
Mac: Cmd+ Option+J
Firefox Konsolu Klavye Kısayolları
Windows: Ctrl+ Shift+ K
Mac: Cmd+ Option+K
Internet Explorer Konsolu Klavye Kısayolları
F12 anahtar
Safari Konsolu Klavye Kısayolları
Cmd+ Option+C
console.log
özellikle geliştiricilerin kodun ne yaptığını dikkatsizce bilgilendirmek için kod yazmalarına yönelik bir yöntemdir. Bir sorun olduğu konusunda sizi uyarmak için kullanılabilir, ancak kodda hata ayıklama zamanı geldiğinde etkileşimli bir hata ayıklayıcının yerini almamalıdır. Eşzamansız doğası, kaydedilen değerlerin yöntem çağrıldığında mutlaka değeri temsil etmediği anlamına gelir .
Kısaca: hataları console.log
(varsa) ile günlüğe kaydedin, ardından hata ayıklayıcıyı kullanarak hataları düzeltin: Firebug , WebKit Geliştirici Araçları ( Safari ve Chrome'da yerleşik ), IE Geliştirici Araçları veya Visual Studio.
Firebug konsolunda oturum açmak (ilettiğiniz herhangi bir şey) için kullanılır . Temel kullanım JavaScript kodunuzda hata ayıklamak olacaktır.
Java komut dosyalarında giriş ve çıkış işlevleri yoktur. Bu nedenle kod konsolu hata ayıklamak için .log () yöntemi kullanılır. Konsol günlüğü (geliştirme araçları) altında yazdırılacaktır.
IE geliştirme aracını açana kadar IE8 ve altında mevcut değildir.
Bu jQuery ile başa çıkmak için bir şey değil. Bu console.log()
, tarayıcının konsoluna bilgi kaydetme yöntemleri sağlayan konsol nesnesinin günlük işlevine başvuruyor. Bu yöntemler yalnızca hata ayıklama amaçlıdır ve son kullanıcılara bilgi sunmak için kullanılmamalıdır.