JavaScript Console知識點

===============

1 問題

Console是什么愈腾?

console是什么

Console 對象用于 JavaScript 調(diào)試蔬浙。

JavaScript 原生中默認是沒有 Console
對象,這是宿主對象(也就是游覽器)提供的內(nèi)置對象。 用于訪問調(diào)試控制臺,
在不同的瀏覽器里效果可能不同誊爹。

console知識點

控制臺輸入console蹬刷,然后就可看到:

0f81c1c7-2a07-43af-8d3b-3623bde777dd.001.png

01.基礎(chǔ)用法——console.log()

打印一段文本

console.log('Is this working?');

打印對象

const foo = { id: 1, verified: true, color: 'green' };

const bar = { id: 2, verified: false, color: 'red' };

接著我們看控制臺的輸出展現(xiàn):

0f81c1c7-2a07-43af-8d3b-3623bde777dd.002.png

從圖中我們看出,無法看出對應(yīng)的變量名频丘;如果想讓兩個對象一起輸出办成,我們可以使用console.log({
foo, bar
}),由于一行內(nèi)容顯示有限搂漠,對象內(nèi)容部分進行了省略迂卢,我們必須點擊左邊的小箭頭看更詳細的內(nèi)容,如下圖所示:

0f81c1c7-2a07-43af-8d3b-3623bde777dd.003.jpeg

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

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

04.console.warn() 用于輸出錯誤信息

一些特別的信息我們需要特別強調(diào)醒目的輸出出來桐汤,比如警告和錯誤信息而克,你可以使用console.warn()
& console.error(),輸出的展示形式如下圖所示怔毛,是不是更醒目:

0f81c1c7-2a07-43af-8d3b-3623bde777dd.004.png

你還可以更進一步员萍,自定義打印輸出的樣式,你可以使用**%c **語法拣度。你可以使用這個方法更好的區(qū)分定義來源你的哪個API調(diào)用充活,用戶事件,示例如下:

console.log('%c Auth ',

'color: white; background-color: #2274A5',

'登錄驗證通過');

console.log('%c GraphQL ',

'color: white; background-color: #95B46A',

'獲取用戶信息');

console.log('%c Error ',

'color: white; background-color: #D33F49',

'獲取用戶信息失敗');

0f81c1c7-2a07-43af-8d3b-3623bde777dd.005.jpeg

05.console.debug用于輸出調(diào)試信息

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

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

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

0f81c1c7-2a07-43af-8d3b-3623bde777dd.006.png

%o占位符焦匈,可以用來查看一個對象內(nèi)部情況

var dog = {};

dog.name = "大毛";

dog.color = "黃色";

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

0f81c1c7-2a07-43af-8d3b-3623bde777dd.007.png

06.console.dir()

console.dir()可以直觀展示一個對象的所有屬性和方法赘淮,示例代碼如下:

(這個方法是我經(jīng)常使用的 可不知道比for
in方便了多少)直接將該DOM結(jié)點以DOM樹的結(jié)構(gòu)進行輸出辕录,可以詳細查對象的方法發(fā)展等等

0f81c1c7-2a07-43af-8d3b-3623bde777dd.008.jpeg
0f81c1c7-2a07-43af-8d3b-3623bde777dd.009.png

function cat(name, age, score){

this.name = name;

this.age = age;

this.score = score;

}

var c = new cat("miao", 2, [6,8,7]);

console.dir(c);

0f81c1c7-2a07-43af-8d3b-3623bde777dd.010.jpeg

07.console.dirxml用來顯示網(wǎng)頁的某個節(jié)點(node)所包含的html/xml代碼

0f81c1c7-2a07-43af-8d3b-3623bde777dd.011.png

08.console.group() 輸出一組信息的開頭

有時候,為了方便分析梢卸,你需要將一些對象變量等信息進行分組打印輸出走诞,示例如下:

console.group('User Details');

console.log('name: John Doe');

console.log('job: Software Developer');

// Nested Group

console.group('Address');

console.log('Street: 123 Townsend Street');

console.log('City: San Francisco');

console.log('State: CA');

console.groupEnd();

console.groupEnd();

0f81c1c7-2a07-43af-8d3b-3623bde777dd.012.jpeg

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

看你需求選擇不同的輸出方法來使用,如果上述四個方法再配合group和groupEnd方法來一起使用就可以輸入各種各樣的不同形式的輸出信息蛤高。

0f81c1c7-2a07-43af-8d3b-3623bde777dd.013.jpeg

10.console.assert對輸入的表達式進行斷言蚣旱,只有表達式為false時,才輸出相應(yīng)的信息到控制臺

0f81c1c7-2a07-43af-8d3b-3623bde777dd.014.jpeg

11.console.count(這個方法非常實用哦)當你想統(tǒng)計代碼被執(zhí)行的次數(shù)

假如你在寫一個React應(yīng)用戴陡,然后你想要知道某個組件渲染的次數(shù)塞绿,你會怎么做?去查看源代碼恤批,然后一個一個數(shù)异吻?這真的是太麻煩了。你可以用console.count(“Counter”)來查詢渲染次數(shù)喜庞,我們還有一個相應(yīng)的函數(shù)來清零計數(shù)器:console.countReset('Counter')

0f81c1c7-2a07-43af-8d3b-3623bde777dd.015.jpeg
0f81c1c7-2a07-43af-8d3b-3623bde777dd.016.jpeg

12.console.time()诀浪,console.timeEnd 計時結(jié)束(看了下面的圖你瞬間就感受到它的厲害了)

console.time()啟動一個計時器,并用timeEnd()結(jié)束計時延都,它們一般用于性能檢查時雷猪。你也可以將一個字符串傳遞給time和timeEnd,它將啟動名稱為該字符串的計時器窄潭。

0f81c1c7-2a07-43af-8d3b-3623bde777dd.017.jpeg

我們在開發(fā)過程中,經(jīng)常需要知道一個方法運行了多長時間酵颁,方便我們做出修改完善的判斷嫉你,我們可以使用console.time(),示例如下:

let i = 0;

console.time("While loop");

while (i < 1000000) {

i++;

}

console.timeEnd("While loop");

console.time("For loop");

for (i = 0; i < 1000000; i++) {

// For Loop

}

console.timeEnd("For loop");

0f81c1c7-2a07-43af-8d3b-3623bde777dd.018.jpeg
0f81c1c7-2a07-43af-8d3b-3623bde777dd.019.jpeg

13.console.profileconsole.profileEnd配合一起使用來查看CPU使用相關(guān)信息

0f81c1c7-2a07-43af-8d3b-3623bde777dd.020.jpeg

在Profiles面板里面查看就可以看到cpu相關(guān)使用信息

0f81c1c7-2a07-43af-8d3b-3623bde777dd.021.jpeg

14.console.timeLineconsole.timeLineEnd配合一起記錄一段時間軸

15.console.trace()

console.trace()方法用于顯示當前執(zhí)行的代碼在堆棧中的調(diào)用路徑躏惋。如下段代碼所示幽污,在控制臺里清晰了展示了add()的調(diào)用軌跡

function add(a,b){

console.trace();

return a+b;

}

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

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

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

var x = add3(1,1);

0f81c1c7-2a07-43af-8d3b-3623bde777dd.022.jpeg

16.console.table()

打印出一個可交互的表格,而您僅需傳入一個對象數(shù)組簿姨。

為了增加輸出的可讀性距误,我們可以使用console.table()讓其通過表格的形式進行展示,比如我們在控制臺輸出console.table({
foo, bar})扁位,如下圖所示:

0f81c1c7-2a07-43af-8d3b-3623bde777dd.023.jpeg

17. console.clear()

實現(xiàn)清空控制臺信息准潭。如下圖所示

0f81c1c7-2a07-43af-8d3b-3623bde777dd.024.png

現(xiàn)在假設(shè)一個場景,如果一個數(shù)組里面有成百上千的元素域仇,但是你想知道每個元

使用Console有什么好處【優(yōu)點】刑然?

console和alert對比。

對比 console.log alert
是否能看到內(nèi)部結(jié)構(gòu) console能看到結(jié)構(gòu)話的東西暇务,console能看到對象的內(nèi)容泼掠。 彈出一個對象就是[object object],
是否打斷頁面 不會打斷你頁面的操作怔软,輸出內(nèi)容后你頁面還可以正常操作 彈出來內(nèi)容,那么頁面就死了
優(yōu)點 方便你調(diào)式j(luò)avascript用的择镇。

3)使用Console有什么壞處【缺點】挡逼?

調(diào)用Console畢竟是調(diào)用了函數(shù),多少會影響系統(tǒng)性能腻豌,所以在發(fā)布版本中盡量把Console注釋掉家坎。

利用一下函數(shù)可以分析具體調(diào)用多少時間。console.time來測試

console.time('console');

console.log('test');

console.timeEnd('console');

Console使用場景饲梭?

Console 對象常見的兩個用途:

  • 顯示網(wǎng)頁代碼運行時的錯誤信息乘盖。

  • 提供了一個命令行接口,用來與網(wǎng)頁代碼互動憔涉。

(1)利用控制臺輸出圖片

0f81c1c7-2a07-43af-8d3b-3623bde777dd.025.png

(2)重寫console.log 改變輸出文字的樣式

0f81c1c7-2a07-43af-8d3b-3623bde777dd.026.png

(3)指定輸出文字的樣式

0f81c1c7-2a07-43af-8d3b-3623bde777dd.027.png

5)console.log()打印輸出臺不顯示輸出內(nèi)容

瀏覽器console.log()打印輸出臺不顯示輸出內(nèi)容的原因應(yīng)該很多订框,如網(wǎng)絡(luò)上所說:console.log()被重新定義等等原因(需要驗證真實性?)都可能導致console.log()打印不能顯示打印信息兜叨。

今天穿扳,在測試screen.availWidth的時候就出現(xiàn)了console.log()打印臺始終無法打印出內(nèi)容的局面。困惑了半天后国旷,終于找到了具體的原因矛物。并且看到這個原因的時候,真TM想給自己兩耳光跪但,或者直接來個冷水沖頭履羞,清醒清醒。

html/CSS/JavaScript代碼如下:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>screen</title>

</head>

<body>

<script type="text/javascript">

alert("123");

console.log("123");

console.log("頁面寬度為 "+screen.availWidth);

console.log("頁面高度為 "+screen.availHeight);

</script>

</body>

</html>

遇到控制臺console.log()無法打印的情況

1.首先應(yīng)該排查default.levels屡久。

我們首先應(yīng)該排查default.levels忆首。一般沒有內(nèi)容顯示,就必須查看default.levels下的info是否勾選被环。實在不會糙及,直接點擊default.levels下的default選項;

這是比較常見原因和解決方案筛欢。

0f81c1c7-2a07-43af-8d3b-3623bde777dd.028.jpeg

今天七仔在選定default的時候同樣無法獲得console.log()的打印內(nèi)容浸锨,又是怎么一回事呢?

2.檢查default.levels前面輸入框中是否有填寫內(nèi)容

注意版姑,一定要檢查default.levels前面輸入框中是否有填寫內(nèi)容柱搜,默認為Filter;七仔則是在Filter中填寫了一串數(shù)字剥险。Filter冯凹,單詞意思,“過濾”“過濾器”……意思就是在控制臺中查找自己需要的信息。并且宇姚,filter中的內(nèi)容匈庭,即便是在關(guān)閉瀏覽器的前提下,也不會消失浑劳。大家一定要謹慎對待阱持。

0f81c1c7-2a07-43af-8d3b-3623bde777dd.029.jpeg
0f81c1c7-2a07-43af-8d3b-3623bde777dd.030.jpeg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市魔熏,隨后出現(xiàn)的幾起案子衷咽,更是在濱河造成了極大的恐慌,老刑警劉巖蒜绽,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镶骗,死亡現(xiàn)場離奇詭異,居然都是意外死亡躲雅,警方通過查閱死者的電腦和手機鼎姊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來相赁,“玉大人相寇,你說我怎么就攤上這事∨タ疲” “怎么了唤衫?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绵脯。 經(jīng)常有香客問我佳励,道長,這世上最難降的妖魔是什么蛆挫? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任赃承,我火速辦了婚禮,結(jié)果婚禮上璃吧,老公的妹妹穿的比我還像新娘楣导。我一直安慰自己废境,他們只是感情好畜挨,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著噩凹,像睡著了一般巴元。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驮宴,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天逮刨,我揣著相機與錄音,去河邊找鬼。 笑死修己,一個胖子當著我的面吹牛恢总,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播睬愤,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼片仿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尤辱?” 一聲冷哼從身側(cè)響起砂豌,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎光督,沒想到半個月后阳距,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡结借,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年筐摘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片映跟。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蓄拣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出努隙,到底是詐尸還是另有隱情球恤,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布荸镊,位于F島的核電站咽斧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏躬存。R本人自食惡果不足惜张惹,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岭洲。 院中可真熱鬧宛逗,春花似錦、人聲如沸盾剩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽告私。三九已至屎暇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驻粟,已是汗流浹背根悼。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挤巡。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓剩彬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親矿卑。 傳聞我的和親對象是個殘疾皇子襟衰,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359