瀏覽器控制臺調試代碼和JavaScript控制臺方法介紹

瀏覽器控制臺調試代碼和JavaScript控制臺方法介紹

瀏覽器控制臺調試代碼

瀏覽器控制臺(Console)是瀏覽器提供的一個開發工具,用于在瀏覽器中執行和調試 JavaScript 代碼。它提供了一個交互式環境,可以輸入 JavaScript 代碼,并立即看到代碼執行結果或輸出信息。

在大部瀏覽器中,可以通過按下 F12 鍵或右鍵點擊網頁并選擇 "檢查"(如Microsoft Edge瀏覽器)或 "審查元素" (如360瀏覽器)來打開開發者工具,并在其中找到控制臺選項卡。

JavaScript 控制臺具有以下功能:

執行 JavaScript 代碼:在控制臺中可以輸入任意 JavaScript 代碼,并按下回車鍵執行。代碼的執行結果會立即顯示在控制臺中,可以是返回值、打印的信息等。

輸出信息:通過使用 console.log() 或其他 console 方法,可以在控制臺中打印輸出信息。這在調試代碼或查看程序運行時的輸出很有用。

調試代碼:控制臺提供了一些調試功能,如設置斷點、單步執行、查看變量值等。可以使用 debugger 語句在代碼中設置斷點,或使用控制臺中的調試工具進行調試操作。

錯誤信息:如果在代碼執行過程中發生錯誤,錯誤信息將顯示在控制臺中。可以查看錯誤信息,定位問題并進行調試。

瀏覽器控制臺調試代碼具體步驟

在瀏覽器地址欄輸入about:blank打開瀏覽器空白頁

再按下 F12 鍵打開開發者工具,在控制臺中輸入JS代碼運行。

你可以在代碼的關鍵位置插入 debugger 關鍵字。

debugger關鍵字:當代碼執行到 debugger 關鍵字時,瀏覽器會主動中斷執行并打開調試器,開發者可以在控制臺中單步執行代碼、查看變量值等重要信息。例如:

function calculateTax(income) {debugger; // 中斷代碼執行,打開瀏覽器控制臺的調試器var taxRate = 0.2;var tax = income * taxRate;console.log("計算稅額中...");console.log("收入:" + income);console.log("稅率:" + taxRate);console.log("稅額:" + tax);console.log("計算完成。");return tax;
}var finalResult = calculateTax(50000);
console.log("最終結果:" + finalResult);

下面是Microsoft Edge瀏覽器中的情況(在其他瀏覽器中也差不多,只是界面布局不同):

通過調試器,您可以逐行執行代碼、檢查變量的值,了解代碼執行的情況。使用調試器可以幫助您理解代碼的執行過程,找出問題所在,并進行適當的修復。

需要注意的是,在發布代碼前,請刪除所有的 debugger 語句,否則在生產環境中,這些語句將會影響性能。

?

JavaScript 控制臺有哪些方法

JavaScript 控制臺是開發者工具提供的一個交互式環境,用于在瀏覽器中執行 JavaScript 代碼和調試。以下是一些常用的 JavaScript 控制臺方法的介紹:

1. console.log():可以在控制臺輸輸出任何類型的值,如字符串、數字、布爾值、對象等。如:

console.log('Hello, world!');

console.log(10 + 5);

2.console.error(): 在控制臺輸出錯誤消息。通常用于輸出程序執行過程中的異常情況。如:

try {

? // 代碼可能會出現錯誤的地方

? throw new Error('這是一個錯誤示例!');

} catch (error) {

? console.error('發生錯誤:', error);

}

使用了 try...catch 語句來捕獲可能出現錯誤的代碼塊。使用 console.error() 方法輸出錯誤信息到控制臺,以便進行調試和錯誤排查。

3. console.warn():輸出一段帶有警告圖標的警告信息到控制臺。通常用于輸出一些潛在問題或需要注意的信息。如:

console.warn('This is a warning!');

4.console.info():輸出一段帶有信息圖標的提示信息到控制臺。通常用于輸出一些提示性的信息。如:

console.info('This is some information.');

5. console.clear(): 清空控制臺的所有信息。

console.clear();

6. console.table(): 以表格形式在控制臺顯示對象或數組的數據。參數為一個數組或對象,其中每個元素或屬性會被顯示為表格的一行或一列。如

const data = [

? { name: 'John', age: 25 },

? { name: 'Alice', age: 30 }

];

console.table(data);

7.console.dir(): 在控制臺以樹狀結構顯示對象的屬性和方法。如:

const obj = { name: 'John', age: 25 };

console.dir(obj);

8. console.time() 和 console.timeEnd(): 計算代碼執行所需的時間間隔。在需要計算代碼執行時間時,在代碼開始處調用 console.time() 方法,在代碼結束處調用 console.timeEnd() 方法,并傳遞相同的參數。如:

console.time('myTimer');

// 執行一些代碼

console.timeEnd('myTimer');

9.console.assert(): 對一個表達式判斷是否為真——對表達式進行斷言判斷,如果結果為 false,則在控制臺輸出錯誤消息。如:

console.assert(2 + 2 === 5, 'Error: 2 + 2 is not equal to 5');

10.?? console.group() 和 console.groupEnd(): 創建一個分組,用于組織相關的日志信息。如:

console.group('計算結果');

console.log('2 + 2 =', 2 + 2);

console.log('3 * 3 =', 3 * 3);

console.groupEnd();

console.group('Group A');

console.log('Hello from Group A');

console.groupEnd();

11.console.count(): 統計特定標簽的調用次數。每次調用該方法時,計數器都會加一。

for (let i = 0; i < 5; i++) {

? console.count('Count');

}

12.console.trace(): 輸出當前函數的調用棧軌跡信息,用于跟蹤代碼執行位置。如:

function foo() {

? bar();

}

function bar() {

? console.trace();

}

foo();

13.console.timeStamp(): 在控制臺輸出一個時間戳,用于標記特定事件或代碼段。

console.timeStamp('Start');

// 執行一些代碼

console.timeStamp('End');

14.console.profile() 和 console.profileEnd(): 啟動和停止 JavaScript CPU 分析器,用于分析代碼的性能問題。

console.profile('Performance');

// 執行一些代碼

console.profileEnd('Performance');

這些方法可以幫助開發者進行日志輸出、錯誤調試、性能優化以及代碼分析等。請根據實際需要選擇適合的方法使用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41055.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41055.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41055.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt:隱式內存共享

隱式內存共享 Many C classes in Qt use implicit data sharing to maximize resource usage and minimize copying. Implicitly shared classes are both safe and efficient when passed as arguments, because only a pointer to the data is passed around, and the data i…

C語言:每日一練(選擇+編程)

目錄 選擇題&#xff1a; 題一&#xff1a; 題二&#xff1a; 題三&#xff1a; 題四&#xff1a; 題五&#xff1a; 編程題&#xff1a; 題一&#xff1a;打印1到最大的n位數 示例1 思路一&#xff1a; 題二&#xff1a;計算日期到天數轉換 示例1 思路一&#xf…

【JVM】如何判定一個對象已死以及“標記-清除”、“標記-復制”、“標記-整理”三種垃圾收集算法

文章目錄 0、如何判定一個對象的生死&#xff1f;1、上文提到的引用又是什么1、強引用&#xff1a;2、軟引用&#xff1a;3、弱引用&#xff1a;4、虛引用&#xff1a; 2、垃圾收集算法1、標記-清除2、標記-復制優化&#xff1a;&#x1f447; 3、標記-整理 0、如何判定一個對象…

Java面向對象程序設計——知識、概念、定義及作用(簡答)

?專欄&#xff1a;《Java面向對象程序設計》學習筆記 問題是依據考綱整理的&#xff0c;稍微做了一些補充。大部分答案由GPT生成&#xff0c;部分內容摘選自書本。 內容太多了&#xff0c;目前懶得濃縮精煉了&#xff0c;以后再說吧。 如果有大佬可以幫忙精簡一些文字、補充…

R語言實現神經網絡(1)

#R語言實現神經網絡 library(neuralnet) library(caret) library(MASS) library(vcd) data(shuttle) str(shuttle)#因變量use; table1<-structable(windmagn~use,shuttle) mosaic(table1,shadingT) mosaic(use~errorvis,shuttle) prop.table(table(shuttle$use,shuttle$stab…

計算機網絡-物理層(二)- 傳輸方式

計算機網絡-物理層&#xff08;二&#xff09;- 傳輸方式 串型傳輸與并行傳輸 串行傳輸:是指數據是一個比特一個比特依次發送的&#xff0c;因此在發送端和接收端之間&#xff0c;只需要一條數據傳輸線路即可 并行傳輸:是指一次發送n個比特而不是一個比特&#xff0c;因此發送…

【Uniapp】base64圖片資源轉為本地圖片,解決canvas不支持base64問題

通過接口獲取到base64類型的二維碼&#xff0c;把二維碼放到canvas里生成海報 遇到的問題&#xff1a; 在微信小程序開發工具中能夠正常顯示海報&#xff0c;到真機上測試就無法顯示二維碼 原因&#xff1a; 因為canvas不支持base64&#xff0c;其次在使用小程序 canvas 的 dr…

異常堆棧缺失與OmitStackTraceInFastThrow

目錄 現象原因OmitStackTraceInFastThrow源碼層面分析OmitStackTraceInFastThrow閾值是多少源碼源代碼解釋 現象 異常沒有堆棧信息。只有短短的異常類信息&#xff0c;例如java.lang.NullPointerException。 完整的異常堆棧示例&#xff1a; java.lang.NullPointerException…

爬蟲逆向實戰(十六)--某建筑市場平臺

一、數據接口分析 主頁地址&#xff1a;某建筑市場平臺 1、抓包 通過抓包可以發現數據接口是list 2、判斷是否有加密參數 請求參數是否加密&#xff1f; 無請求頭是否加密&#xff1f; 無響應是否加密&#xff1f; 通過查看“響應”模塊可以發現&#xff0c;返回的響應是…

MAUI+Blazor:windows 打包踩坑

文章目錄 前言MSIX安裝文件如何發布選擇Windows平臺旁加載自定義簽名版本號安裝 總結 前言 最近打算研究一下MAUIBlazor&#xff0c;爭取在今年年底之前徹底搞懂MAUIBlazor的安裝模式&#xff0c; MSIX安裝文件 Windows 4種安裝程序格式MSI&#xff0c;EXE、AppX和MSIX優缺點…

Java常用API---快速達到Java工作水準系列(1)

目錄 1.集合 2.包裝類 3.日期處理以及格式化 4.字符串處理類 5.數組 5.BigDecimal 6.Math 1.集合 毋庸置疑&#xff0c;集合在實際項目的使用概率幾乎是百分之百。無論是用于數據存儲和管理、去重和查找亦或是數據檢索和遍歷&#xff0c;都離不開集合的使用。任何一個項…

Spring Cloud Gateway系例—參數配置(CORS 配置、SSL、元數據)

一、CORS 配置 你可以配置網關來控制全局或每個路由的 CORS 行為。兩者都提供同樣的可能性。 1. Global CORS 配置 “global” CORS配置是對 Spring Framework CorsConfiguration 的URL模式的映射。下面的例子配置了 CORS。 Example 77. application.yml spring:cloud:gat…

【【STM32----I2C通信協議】】

STM32----I2C通信協議 我們會發現I2C有兩根通信線&#xff1a; SCL和SDA 同步 半雙工 帶數據應答 支持總線掛載多設備&#xff08;一主多從&#xff0c;多主多從&#xff09; 硬件電路 所有I2C設備的SCL連在一起&#xff0c;SDA連在一起 設備的SCL和SDA均要配置成開漏輸出模式 …

5.Vue_Element

文章目錄 1 Ajax1.1 Ajax介紹1.1.1 Ajax概述1.1.2 Ajax作用1.1.3 同步異步 1.2 Axios1.2.1 Axios的基本使用1.2.2 Axios請求方法的別名 2 前端工程化2.1 前端工程化特點2.2 Vue項目開發流程 3 Vue組件庫Element3.1 Element介紹 1 Ajax 1.1 Ajax介紹 1.1.1 Ajax概述 Ajax: 全…

【Unity游戲開發】基于前綴樹的紅點系統構思與客戶端方案

一、前言 前段時間負責了項目中紅點系統的實現,和大家分享一下初期是設計思路 紅點系統客戶端業務的一般實現過程與方式: 數據管理:首先要在客戶端建立一個數據管理系統,用于存儲和管理各個業務模塊的紅點狀態。可以是一個中央數據管理器或模塊化的數據管理系統,具體根據游…

VUE中babel.config.js配置按需引入

VUE中babel.config.js配置 vue/cli-plugin-babel/preset是一款 babel 插件&#xff0c;它會在編譯過程中將 import 引入自動轉換為按需引入的方式。 module.exports {presets: [vue/cli-plugin-babel/preset],plugins: [[import, {libraryName: element-ui,libraryDirectory…

系統架構設計師---多媒體技術及其應用

概念 媒體:承載信息的載體。 多媒體:數字、文字、聲音、圖形、圖像和動畫等各種媒體的有機組合,并與先進的計 算機、通信和廣播電視技術相結合,形成一個可組織、存儲、操縱和控制多媒體信息的集成環境和 交互系統。 多媒體技術:以數字化為基礎,能夠對多…

召集令:CloudQuery 社區有獎征文活動來啦!

CloudQuery 社區第一期征文活動來襲&#xff01;&#xff01;&#xff01;只要你對 CloudQuery 產品感興趣&#xff0c;或者是希望了解 CQ &#xff0c;都可以來參加&#xff0c;在本期活動中&#xff0c;我們也為大家準備了多種主題供你選擇&#xff0c;CQ 使用案例、版本對比…

udp與can通信的選擇與比較

UDP&#xff08;用戶數據報協議&#xff09;和CAN&#xff08;控制器局域網&#xff09;是兩種不同的通信協議&#xff0c;它們在實時傳遞性上有一些區別。 UDP是一種無連接的傳輸協議&#xff0c;它提供了簡單的、不可靠的數據傳輸。UDP不提供可靠性保證、流控制或重傳機制。…

EMO實戰:使用EMO實現圖像分類任務(一)

文章目錄 摘要安裝包安裝timm安裝 grad-cam安裝einops 數據增強Cutout和MixupEMA項目結構計算mean和std生成數據集 摘要 論文翻譯&#xff1a;https://blog.csdn.net/m0_47867638/article/details/132034098?spm1001.2014.3001.5501 官方源碼&#xff1a;https://github.com/…