javascript工具--控制台詳解

来源:http://www.cnblogs.com/shouce/archive/2016/04/25/5429279.html
-Advertisement-
Play Games

一、顯示信息的命令 console.log(); //控制台輸入 網頁中不會輸出 console.info(); //一般信息 console.debug(); //除錯信息 console.warn(); //警告提示 console.error(); //錯誤提示 “console.log(); ...


一、顯示信息的命令

console.log();  //控制台輸入 網頁中不會輸出

console.info();  //一般信息

console.debug();  //除錯信息

console.warn();  //警告提示

console.error();  //錯誤提示

 

 “console.log();” 可以用來取代 “alert();” 或 “document.write();” 比如,在網頁中寫入 “console.log("Hello World");” 然後會在控制台輸入,但是網頁中並不會輸入。

我們在代碼中插入如下代碼:

  console.info( "這是info" );

  console.debug( "這是debug" );

  console.warn( "這是warn" );

  console.error( "這是error" );

載入後打開控制台會看到像下麵這樣:

二、占位符

console對象的上面5種方法,都可以使用printf風格的占位符。不過,占位符的種類比較少,只支持字元(%s)、整數(%d或%i)、浮點數(%f)和對象(%o)四種。比如:

  console.log( "%d年%d月%d日" , 2011,3,26 );

  console.log( "圓周率是%f" , 3.1415926 );

%o占位符,可以用來查看一個對象內部情況。比如,有這樣一個對象:

  var dog = {} ;

  dog.name = "大毛";

  dog.color  = "黃色";

然後,對它使用o%占位符:

  console.log( "%o" , dog );

三、分組顯示

console.group();  console.groupEnd(); (這兩個方法是成對使用的)

 

  console.group("第一組信息");

 

    console.log("第一組第一條");

 

    console.log("第一組第二條");

 

  console.groupEnd();

 

  console.group("第二組信息");

 

    console.log("第二組第一條");

 

    console.log("第二組第二條");

 

  console.groupEnd();

 

四、console.dir();(顯示某一個對象的所有屬性和方法)

 

比如,現在為第二節的dog對象,添加一個bark()方法,然後用 “dir();” 顯示出來:

  dog.bark = function(){ alert( "汪汪汪" ); };

  console.dir( dog );

五、console.dirxml();(獲取某個節點所包含的所有html/xml代碼)

  var table = document.getElementById("table1");  //獲取節點

  console.dirxml( table );  //顯示節點的所有代碼

 

六、console.assert();(用來判斷一個表達式或變數是否為真。如果結果為否,則在控制台輸出一條相應信息,並且拋出一個異常)

  var result = 0;

  console.assert( result );  //false

  var year = 2000;

  console.assert( year == 2011 );  //false

七、console.trace();(用來追蹤函數的調用軌跡)

  /*一個加法函數*/

  function add( a,b ){

    return a+b;

  }

我想知道這個函數是如何被調用的,在其中加入console.trace()方法就可以了:

  function add( a,b ){

    console.trace();

    return a+b;

  }

假定這個函數的調用代碼如下:

  var x = add3( 1,1 );

  function add3( a,b ){ return add2(a,b); }

  function add2( a,b ){ return add1( a,b ); }

  function add1( a,b ){ return add( a,b ); }

運行後,會顯示add()的調用軌跡,從上到下依次為add()、add1()、add2()、add3()

 

八、console.time();和console.timeEnd();(用來顯示代碼的運行時間)

  console.time( "計時器一" );

  for( var i=0;i<1000;i++ ){

    for(var j=0;j<1000;j++){}

  }

  console.timeEnd( "計時器一" );

 

九、性能分析

性能分析(Profiler)就是分析程式各個部分的運行時間,找出瓶頸所在,使用的方法是console.profile();

假定有一個函數Foo(),裡面調用了另外兩個函數funcA()和funcB(),其中funcA()調用10次,funcB()調用1次。

  function Foo(){

    for(var i=0;i<10;i++){funcA(1000);}

    funcB(10000);

  }

  function funcA(count){

    for(var i=0;i<count;i++){}

  }

  function funcB(count){

    for(var i=0;i<count;i++){}

  }

然後分析 “Foo();” 的運行性能:

  console.profile( '性能分析器一' );

  Foo();

  console.profileEnd();

 

標題欄提示,一共運行了12個函數,共耗時2.656毫秒。其中funcA()運行10次,耗時1.391毫秒,最短運行時間0.123毫秒,最長0.284毫秒,平均0.139毫秒;funcB()運行1次,耗時1.229ms毫秒。

除了使用 “console.profile();” 方法,firebug還提供了一個"概況"(Profiler)按鈕。第一次點擊該按鈕,"性能分析"開始,你可以對網頁進行某種操作(比如ajax操作),然後第二次點擊該按鈕,"性能分析"結束,該操作引發的所有運算就會進行性能分析。

 

十、屬性菜單

控制臺面板的名稱後面,有一個倒三角,點擊後會顯示屬性菜單。

 

預設情況下,控制台只顯示Javascript錯誤。如果選中Javascript警告、CSS錯誤、XML錯誤都送上,則相關的提示信息都會顯示。

這裡比較有用的是顯示 "XMLHttpRequests" 也就是顯示ajax請求。選中以後,網頁的所有ajax請求,都會在控制臺面板顯示出來。

比如,點擊一個YUI示例,控制台就會告訴我們,它用ajax方式發出了一個GET請求,http請求和響應的頭信息和內容主體,也都可以看到。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. REST名稱由來 REST全稱為Representational State Transfer,即表述性狀態轉移,最早由Roy Feilding博士在世紀之交(2000年)提出,喜歡追根溯源的朋友可以讀一下他的博士論文《Architectural Styles and the Design o ...
  • 一、拋一塊問題磚(display: block)先看現象: 分析HTML代碼結構: 分析CSS代碼樣式: 這裡沒有給最外層的DIV.outer 設置高度,但是我們知道如果它裡面的元素不浮動的話,那麼這個外層的高是會自動被撐開的。但是當內層元素浮動後,就出現了一下影響: (1):背景不能顯示 (2): ...
  • //參數為消息提示層對應的對象,通常為表單里的對象 //特別註意:當使用擴展方法里的type=radio或者type=checkbox時,因為當時設置消息提示層的對象為obj.parentElement.parentElement,所以傳入的對象也應為其上2級父節點 function hiddenM ...
  • CSS3作為新興的前端技術可以實現很多複雜變化的效果,比如文字描邊。 這裡主要用到text-shadow屬性,顧名思義就是為文字加上陰影效果。例: 其中:x位移和y位移表示陰影相對文字的偏移值,可以為負值。 思路其實很簡單:對四個方向都作出模糊程度為零的1px陰影。 原則上,text-shadow支 ...
  • 第七章是入門篇的倒數第二篇文章了,明天整個APP將進入收官。 本節教程主要要教會大家使用二維碼掃描和用do_WebView組件加在html頁面。 導入項目 do_WebView組件 掃描功能 自定義事件 將要學習的demo效果圖如下所示 1. 導入完整項目 本節示例demo請參考下載地址,可以導入到 ...
  • 隨著高端手機(Andriod,Iphone,Ipod,WinPhone等)的盛行,移動互聯應用開發也越來越受到人們的重視,用html5開發移動應用是最好的選擇。然而,每一款手機有不同的解析度,不同屏幕大小,如何使我們開發出來的應用或頁面大小能適合各種高端手機使用呢?學習html5 viewport的 ...
  • 協議 WebSocket是一種基於TCP之上的客戶端與伺服器全雙工通訊的協議,它在HTML5中被定義,也是新一代webapp的基礎規範之一。 它突破了早先的AJAX的限制,關鍵在於實時性,伺服器可以主動推送內容 到客戶端!可能的應用有:多人線上游戲,即時聊天,實時監控,遠程桌面,新聞伺服器等等。 對 ...
  • 最近在項目中使用jQuery.query.js這個插件進行頁面間URL傳值,遇到如下兩點問題: 1. 參數中存在空格時取到的值中空格被替換為加號:+ 2. 當參數某個key的value不存在時,獲取到的value並不是空/null 而是true。 在網上找到了個解決方案,可以參考下(是否有其他副作用 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...