F12Console的用法,以及如何Debug程序

大家好缀旁,我是IT修真院鄭州分院第6期的學(xué)員王棟记劈,一枚正直、純潔并巍、善良的前端程序員今天給大家分享一下目木,修真院官網(wǎng)js任務(wù)1,深度思考中的知識(shí)點(diǎn)——F12Console的用法懊渡,以及如何Debug程序刽射。


F12Console的用法,以及如何Debug程序? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1.背景介紹

什么是console剃执?

Console 是用于顯示 JS和 DOM 對(duì)象信息的單獨(dú)窗口誓禁。

并且向 JS 中注入1個(gè) console 對(duì)象,使用該對(duì)象 可以輸出信息到 Console 窗口中肾档。

Chrome和FireFox都支持console摹恰。

控制臺(tái)以及瀏覽器內(nèi)置Console對(duì)象的出現(xiàn),給前端開(kāi)發(fā)調(diào)試帶來(lái)了極大的便利怒见。

2.知識(shí)剖析

console的用法

    console.log 用于輸出普通信息

    console.info 用于輸出提示性信息

    console.error用于輸出錯(cuò)誤信息

    console.warn用于輸出警示信息

    console.groupEnd結(jié)束一組輸出信息

    console.assert對(duì)輸入的表達(dá)式進(jìn)行斷言戒祠,只有表達(dá)式為false時(shí),才輸出相應(yīng)的信息到控制臺(tái)速种。

    console.count當(dāng)你想統(tǒng)計(jì)代碼被執(zhí)行的次數(shù)(經(jīng)常用到)

    console.dir 直接將該DOM結(jié)點(diǎn)以DOM樹(shù)的結(jié)構(gòu)進(jìn)行輸出,可以詳細(xì)查對(duì)象的方法發(fā)展等等低千。

    console.time/console.timeEnd用于函數(shù)的計(jì)時(shí)

    console.table 將傳入的值以表格形式展示

    如何使用斷點(diǎn)調(diào)試配阵?

      Pause/Resume script execution:暫停/恢復(fù)腳本執(zhí)行(程序執(zhí)行到下一斷點(diǎn)停止)馏颂。

      Step over next function call:執(zhí)行到下一步的函數(shù)調(diào)用(跳到下一行)。

      Step into next function call:進(jìn)入當(dāng)前函數(shù)棋傍。

      ? Step out of current function:跳出當(dāng)前執(zhí)行函數(shù)救拉。

      Deactive/Active all breakpoints:關(guān)閉/開(kāi)啟所有斷點(diǎn)(不會(huì)取消)。

      Pause on exceptions:異常情況自動(dòng)斷點(diǎn)設(shè)置瘫拣。

      3.常見(jiàn)問(wèn)題

      什么是斷點(diǎn)調(diào)試亿絮?

      如何Debug?

      4.解決方案

      什么是斷點(diǎn)調(diào)試

      斷點(diǎn)麸拄,調(diào)試器的功能之一派昧,可以讓程序中斷在需要的地方,從而方便其分析拢切。也可以在一次調(diào)試中設(shè)置斷點(diǎn)蒂萎,

      下一次只需讓程序自動(dòng)運(yùn)行到設(shè)置斷點(diǎn)位置,便可在上次設(shè)置斷點(diǎn)的位置中斷下來(lái)淮椰,

      極大的方便了操作五慈,同時(shí)節(jié)省了時(shí)間。

      ——百度百科

      簡(jiǎn)單地說(shuō)主穗,斷點(diǎn)調(diào)試是指自己在程序的某一行設(shè)置一個(gè)斷點(diǎn)泻拦,調(diào)試時(shí),程序運(yùn)行到這一行就會(huì)停住忽媒,然后你可以一步一步往下調(diào)試争拐,調(diào)試過(guò)程中可以看各個(gè)變量當(dāng)前的值,出錯(cuò)的話(huà)猾浦,調(diào)試到出錯(cuò)的代碼行即顯示錯(cuò)誤陆错,停下。

      如何Debug金赦?

      使用cosole.log

      使用斷點(diǎn)調(diào)試

      5.編碼實(shí)戰(zhàn)

      console.log("%c", "padding:200px 300px;line-height:120px;" +

      "background:url('http://img.zcool.cn/community/012d6b573bc18d6ac7253f9adca1fd.gif') no-repeat;");

      console.error("error");

      console.warn("warn")

      var data = [{'品名': '面包', '數(shù)量': 4}, {'品名': '牛奶', '數(shù)量': 3}];

      console.table(data);

      (function() {for (var i = 0; i < 5; i++) {console.count('count');}})();

      console.time('計(jì)時(shí)器1');

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

      console.timeEnd('計(jì)時(shí)器1');

      console.time('計(jì)時(shí)器2');

      for (var i = 0; i < 1000; i++) {for (var j = 0; j < 1000; j++) {}};console.timeEnd('計(jì)時(shí)器2');

      console.log('這是第一層');console.group();console.log('這是第二層');console.log('依然第二層');console.group();console.log('第三層了');console.groupEnd();console.log('回到第二層');

      console.groupEnd();console.log('回到第一層');console.groupCollapsed('第一層');console.groupCollapsed('第二層');console.log('error');console.error('error');console.warn('error');console.groupEnd();

      console.groupEnd();var obj = {name: 'c';age: '20',type: '1'};

      console.dir(obj);

      var arr = [1,2,3]

      console.dir(arr)

      var s = 'sdfs'

      console.dir(s)

      var n = '123'

      console.dir(n)

      6.擴(kuò)展思考

      為什么不用alert音瓷?(console的優(yōu)點(diǎn))

      用alert調(diào)試方式對(duì)開(kāi)發(fā)者太不友好;每次執(zhí)行結(jié)束都需要點(diǎn)擊一次彈窗夹抗;

      而且有時(shí)候彈窗會(huì)遮住一些頁(yè)面效果

      alert的調(diào)試信息會(huì)中斷代碼绳慎,阻礙頁(yè)面的繼續(xù)渲染。這就意味著開(kāi)發(fā)人員調(diào)試完成后漠烧,必須手動(dòng)清除這些調(diào)試代碼杏愤,實(shí)在有些麻煩。

      另外已脓,如果在循環(huán)中使用alert珊楼,會(huì)彈出很多個(gè)窗口

      7.參考文獻(xiàn)

      前端開(kāi)發(fā)中的JS調(diào)試技巧

      http://blog.csdn.net/yin767833376/article/details/51656402

      你真的了解 console 嗎

      https://segmentfault.com/a/1190000000481884

      超完整的 Chrome 瀏覽器客戶(hù)端調(diào)試大全

      http://web.jobbole.com/89344/?utm_source=blog.jobbole.com&utm_medium=relatedPosts

      chrome developer tool—— 斷點(diǎn)調(diào)試篇

      https://www.cnblogs.com/yzg1/p/5578363.html

      8.更多討論

      還有那些debug技巧?

      使用sources里面的



      這個(gè)面板度液,也可以幫助快速debug厕宗。

      更多問(wèn)題1:如何在控制臺(tái)進(jìn)行代碼格式化画舌?

      在sources面板選中需要格式化的js文件,然后點(diǎn)擊pretty print已慢。


      更多問(wèn)題2:alert的更多缺點(diǎn)曲聂?

      1).alert()是一種破壞性的方法,執(zhí)行的時(shí)候彈出彈窗之后的代碼就不會(huì)執(zhí)行佑惠。

      2).alert()還有一個(gè)缺點(diǎn)就是會(huì)將參數(shù)message轉(zhuǎn)換為字符串朋腋。改變?cè)畔⒏袷健?/p>

      更多問(wèn)題3:console和打斷點(diǎn)哪個(gè)更好用?

      各有特長(zhǎng)吧膜楷,如果你要驗(yàn)證一個(gè)特定的函數(shù)旭咽,是不是自己想要的效果,就用console把将,如果不確定頁(yè)面的問(wèn)題出在哪兒轻专,就用斷點(diǎn)調(diào)試。

      最后編輯于
      ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
      • 序言:七十年代末察蹲,一起剝皮案震驚了整個(gè)濱河市请垛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洽议,老刑警劉巖宗收,帶你破解...
        沈念sama閱讀 221,635評(píng)論 6 515
      • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異亚兄,居然都是意外死亡混稽,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
        沈念sama閱讀 94,543評(píng)論 3 399
      • 文/潘曉璐 我一進(jìn)店門(mén)审胚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)匈勋,“玉大人,你說(shuō)我怎么就攤上這事膳叨∏⒔啵” “怎么了?”我有些...
        開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
      • 文/不壞的土叔 我叫張陵菲嘴,是天一觀的道長(zhǎng)饿自。 經(jīng)常有香客問(wèn)我,道長(zhǎng)龄坪,這世上最難降的妖魔是什么昭雌? 我笑而不...
        開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
      • 正文 為了忘掉前任,我火速辦了婚禮健田,結(jié)果婚禮上烛卧,老公的妹妹穿的比我還像新娘。我一直安慰自己妓局,他們只是感情好唱星,可當(dāng)我...
        茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
      • 文/花漫 我一把揭開(kāi)白布雳旅。 她就那樣靜靜地躺著,像睡著了一般间聊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抵拘,一...
        開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
      • 那天哎榴,我揣著相機(jī)與錄音,去河邊找鬼僵蛛。 笑死尚蝌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的充尉。 我是一名探鬼主播飘言,決...
        沈念sama閱讀 40,833評(píng)論 3 421
      • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼驼侠!你這毒婦竟也來(lái)了姿鸿?” 一聲冷哼從身側(cè)響起,我...
        開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
      • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤倒源,失蹤者是張志新(化名)和其女友劉穎苛预,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體笋熬,經(jīng)...
        沈念sama閱讀 46,280評(píng)論 1 319
      • 正文 獨(dú)居荒郊野嶺守林人離奇死亡热某,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
        茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
      • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胳螟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昔馋。...
        茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
      • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖糖耸,靈堂內(nèi)的尸體忽然破棺而出秘遏,到底是詐尸還是另有隱情,我是刑警寧澤蔬捷,帶...
        沈念sama閱讀 36,185評(píng)論 5 350
      • 正文 年R本政府宣布垄提,位于F島的核電站,受9級(jí)特大地震影響周拐,放射性物質(zhì)發(fā)生泄漏铡俐。R本人自食惡果不足惜,卻給世界環(huán)境...
        茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
      • 文/蒙蒙 一妥粟、第九天 我趴在偏房一處隱蔽的房頂上張望审丘。 院中可真熱鬧,春花似錦勾给、人聲如沸滩报。這莊子的主人今日做“春日...
        開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
      • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)脓钾。三九已至售睹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間可训,已是汗流浹背昌妹。 一陣腳步聲響...
        開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
      • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留握截,地道東北人飞崖。 一個(gè)月前我還...
        沈念sama閱讀 48,909評(píng)論 3 376
      • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像谨胞,于是被迫代替她去往敵國(guó)和親固歪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
        茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

      推薦閱讀更多精彩內(nèi)容