- Node.js應用開發
- 唐小燕 劉洪武主編
- 6字
- 2025-02-08 17:20:23
1.4 Node.js控制臺Console
1.4.1 Console常用方法
Console對象提供了一個簡單的調試控制臺,類似于Web瀏覽器提供的JavaScript 控制臺。使用Console對象的一系列方法可以將調試模式的信息輸出到控制臺。Console對象的常用方法及功能見表1-1。
表1-1 Console對象的常用方法及功能

1. console. log()輸出普通信息
console.log()方法可用于在控制臺輸出普通信息,如單個變量(表達式)、多個變量、換行以及格式化輸出,類似于C語言中的printf()。格式化輸出時可使用類似printf()風格的占位符,支持字符(%s)、整數(%d)、浮點數(%f)和對象(%o)4種占位符。
【示例1.1】console.log()輸出普通信息。
console.log('Hello World!'); console.log('l', 'am', 'a', 'student.'); console.log('We are students.\nWe are learning Node.js.'); console.log('%d + %d = %d', 1, 1, 2); // 依次序輸出所有字符串 console.log("%s", "Hello", "World!"); // 將對象轉換為普通字符串后執行 console.log("%s", {school: "CClT"}); console.log("%o", {school: "CClT"}); //將字符串作為數值進行轉換 console.log("今天是%d年%d月%d日",2021,01,26); console.log("圓周率是%f",3.1415926); // 輸出% console.log("%%"); console.log("%%", "CClT","%%");
運行結果如圖1-25所示。

圖1-25 運行結果
【代碼分析】
代碼中第2行以逗號(,)隔開的參數在輸出時以空格連接。在第3行中,“\n”表示輸出一個換行符。%d、%s、%f、%o分別以整數、字符串、浮點數和對象來輸出參數。最后一行,在格式化輸出時,“%%”表示在第二個參數輸出前加一個“%”,第三個參數“%%”不作為格式化規范使用,所以按字符串正常輸出。格式化字符及含義見表1-2。
說明
本書中代碼加粗部分表示需要重點關注,以下代碼標注用意相同。
表1-2 格式化字符及含義

2. console. info()輸出提示信息
console.info()方法可以用于在控制臺輸出提示信息,該方法對于開發過程進行測試很有幫助。
【示例1.2】console.info()輸出提示信息。
console.info('數據傳輸成功!'); var myObj = { publish: "人民郵電出版社", site :"https://www.ptpress.com.cn" }; console.info(myObj); var myArr = ["Baidu", "Taobao", "Runoob"]; console.info(myArr);
運行結果如圖1-26所示。

圖1-26 運行結果
【代碼分析】
console.info()方法可以輸出一個字符串,也可以輸出對象和數組。
3. console. error()輸出錯誤信息
console.error()方法用于輸出錯誤信息到控制臺,該方法對于開發過程進行測試也很有幫助。
【示例1.3】console.error()輸出錯誤信息。
console.error('數據格式錯誤!'); var myObj = { publisher : "人民郵電出版社", site : "https://www.ptpress.com.cn" }; console.error(myObj); var myArr = ["PHP", "Node.js", "JSP"]; console.error(myArr);
運行結果如圖1-27所示。

圖1-27 運行結果
【代碼分析】
console.error()方法在控制臺以紅色文字打印以上字符串、對象和數組信息。
4. console. warn()輸出警示信息
console.warn()方法用于輸出警示信息到控制臺,該方法對于開發過程進行測試也很有幫助。在Node.js中可以使用console.warn()方法來代替console.error()方法,兩個方法的使用方法完全相同。
【示例1.4】console.warn()輸出警示信息。
console.warn('數據格式錯誤!');
運行顯示為:
數據格式錯誤!
【代碼分析】
console.warn()方法在控制臺以紅色文字打印以上字符串信息。
5. console. dir()輸出對象信息
console.dir()方法可以顯示一個對象的所有屬性和方法。
【示例1.5】console.dir()輸出對象信息。
var myObj = { publisher : "人民郵電出版社", site : "https://www.ptpress.com.cn}"; console.dir(myObj);
運行結果如圖1-28所示。

圖1-28 運行結果
【代碼分析】
console.dir()方法在控制臺顯示一個對象的所有屬性和方法。
6. console. table()輸出表格
console.table()方法用來在控制臺輸出一個表格。
【示例1.6】console.table()輸出表格。
console.table(["PHP", "Node.js", "JSP"]); console.table({"C1": "PHP", "C2": "Node.js", "C3": "JSP"});
運行結果如圖1-29所示。

圖1-29 運行結果
【代碼分析】
console.table()方法在控制臺可以將一個數組或者對象以表格方式輸出。當將數組轉換成表格時,第一列為數組元素的索引值;當將對象轉換成表格時,第一列為對象的“鍵”值。
7. console. time()和console. timeEnd()用于計時
若需要統計某個算法的運行時間,可以使用 console.time()方法和console.timeEnd()方法,這兩個方法都要接受一個字符串作為參數,兩個方法的參數要相同,這樣才能正確計算出算法從開始到結束運行的時間。
【示例1.7】console.time()和console. timeEnd()計時提示信息。
console.time("Tag"); var sum=0 for(var i=1;i<=100000;i++){ sum +=i; } console.log(sum); console.timeEnd("Tag");
運行顯示為:
5000050000 Tag: 3.819ms
【代碼分析】
運行結果第一行為1~100000所有整數之和,第二行顯示運算所用的時間為3.819ms。
8. console. assert()評估表達式
console.assert()在第一個參數值為false的情況下會在控制臺輸出信息。
【示例1.8】console.assert()方法評估表達式后輸出信息。
console.assert(12 == 11, "error 12==11");
console.assert(11 == 11, "什么都不做");
運行顯示為:
Assertion failed: error 12==11
【代碼分析】
console.assert()對表達式結果進行評估,如果該表達式的執行結果為 false,則輸出一個消息字符串并拋出AssertionError異常。若參數表達式返回true,則該語句什么都不做。
需要說明的是,對于 console.log()、console.info()、console.error()、console.warn()和console.dir()方法的輸出結果在HBuilder中的區別不是特別明顯,可以使用瀏覽器中的控制臺來進行調試。
9.瀏覽器控制臺輸出消息
打開Chrome瀏覽器,按<F12>鍵,在調試窗口選擇“console”,輸入示例1.9所示代碼。
【示例1.9】瀏覽器控制臺輸出消息。
console.log('數據傳輸成功!'); console.info('數據傳輸成功!'); console.error('數據格式錯誤!'); console.warn('數據格式錯誤!'); var myObj = { publisher : "人民郵電出版社", site : "https://www.ptpress.com.cn" }; console.dir(myObj);
運行結果如圖1-30所示。

圖1-30 運行結果
【代碼分析】
在瀏覽器窗口的控制臺中會使用不同的文字顏色和圖標來表示不同方法對應的信息提示,展開對象數據,可以查看其屬性。
- Java應用與實戰
- Android和PHP開發最佳實踐(第2版)
- Java EE框架整合開發入門到實戰:Spring+Spring MVC+MyBatis(微課版)
- Java編程指南:基礎知識、類庫應用及案例設計
- C語言程序設計
- 基于Swift語言的iOS App 商業實戰教程
- The HTML and CSS Workshop
- Elasticsearch Server(Third Edition)
- QGIS By Example
- Unreal Engine 4 Shaders and Effects Cookbook
- 大數據分析與應用實戰:統計機器學習之數據導向編程
- 小型編譯器設計實踐
- Hands-On Nuxt.js Web Development
- Django 3.0應用開發詳解
- 零代碼實戰:企業級應用搭建與案例詳解