九個Console命令,讓js調試更簡單

來源:互聯網
上載者:User

標籤:根據   運算式   work   www   分享   展開   ons   net   pen   

一、顯示資訊的命令
<!DOCTYPE html><html><head>    <title>常用console命令</title>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>    <script type="text/javascript">        console.log(‘hello‘);        console.info(‘資訊‘);        console.error(‘錯誤‘);        console.warn(‘警告‘);    </script></body></html>

最常用的就是console.log了。

二、預留位置

console上述的集中度支援printf的預留位置格式,支援的預留位置有:字元(%s)、整數(%d或%i)、浮點數(%f)和對象(%o):

預留位置 作用
%s 字串
%d or %i 整數
%f 浮點數
%o 可展開的DOM
%O 列出DOM的屬性
%c 根據提供的css樣式格式化字串
<script type="text/javascript">    console.log("%d年%d月%d日",2011,3,26);</script>

%o、%O都是用來輸出Object對象的,對普通的Object對象,兩者沒區別,但是列印dom節點時就不一樣了:

// 格式成可展開的的DOM,像在開發人員工具Element面板那樣可展開 console.log(‘%o‘,document.body.firstElementChild); // 像JS對象那樣訪問DOM元素,可查看DOM元素的屬性 // 等同於console.dir(document.body.firstElementChild) console.log(‘%O‘,document.body.firstElementChild);

%c預留位置是最常用的。使用%c預留位置時,對應的後面的參數必須是CSS語句,用來對輸出內容進行CSS渲染。常見的輸出方式有兩種:文字樣式、圖片輸出。

文字輸出

// 輸出紅色的、20px大小的字串:Hello world,歡迎您!console.log("%cHello world,歡迎您!","color: red; font-size: 20px"); 

除了普通文本,還能輸出如知乎的console面板一樣的字元畫。這些字元畫是可以線上產生的:

  • picascii
  • mg2txt
  • Ascii generator

大概方法:使用線上工具產生字元畫,然後複製到sublime中,將每行開頭的換行刪除,且替換成\n。最後只有一行代碼,即保證沒有換行,最後再丟到console.log("")代碼中即可,當然,也可以添加結合%c做出更酷炫的效果(console輸出預設是不換行的)。

圖片輸出

由於 console不能定義img,因此用背景圖片代替。此外,console不支援width和height,利用空格和font-size代替;還可以使用padding和line-height代替寬高。

不想這麼麻煩,可以試試console-image這個外掛程式。

三、資訊分組
console.group("第一組資訊");console.log("第一組第一條:我的部落格(http://www.cnblogs.com/chenjiacheng)");console.log("第一組第二條:CSDN(http://www.cnblogs.com/chenjiacheng)");console.groupEnd();console.group("第二組資訊");console.log("第二組第一條:程式愛好者QQ群:***");console.log("第二組第二條:歡迎你加入");console.groupEnd();

四、查看對象的資訊
var info = {    blog:"http://www.cnblogs.com/chenjiacheng",    QQGroup:"***",    message:"程式愛好者歡迎你的加入"};console.dir(info);

五、顯示某個節點的內容

console.dirxml()用來顯示網頁的某個節點(node)所包含的html/xml代碼。

<!DOCTYPE html><html><head>    <title>常用console命令</title>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>    <div id="info">        <h3>我的部落格:http://www.cnblogs.com/chenjiacheng</h3>        <p>程式愛好者:***,歡迎你的加入</p>    </div>    <script type="text/javascript">        var info = document.getElementById(‘info‘);        console.dirxml(info);    </script></body></html>

六、判斷變數是否是真

console.assert()用來判斷一個運算式或變數是否為真。如果結果為否,則在控制台輸出一條相應資訊,並且拋出一個異常。

var result = 1;console.assert(result);var year = 2014;console.assert(year == 2018);

1是非0值,是真;而第二個判斷是假,在控制台顯示錯誤資訊

七、追蹤函數的調用軌跡

console.trace()用來追蹤函數的調用軌跡。

/*函數是如何被調用的,在其中加入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);}

八、計時功能

console.time()和console.timeEnd(),用來顯示代碼的已耗用時間。

console.time("控制台計時器一");for(var i=0;i<1000;i++){  for(var j=0;j<1000;j++){}}console.timeEnd("控制台計時器一");

已耗用時間是5.97...ms

九、console.profile()的效能分析

效能分析(Profiler)就是剖析器各個部分的已耗用時間,找出瓶頸所在,使用的方法是console.profile()。

function All(){    alert(11);    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++){}}console.profile(‘效能分析器‘);All();console.profileEnd();

輸出

其它

從console.log說起

九個Console命令,讓js調試更簡單

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.