动漫av纯肉无码国产av-动漫av永久无码精品每日更新-动漫av专区-动漫h精品无码一区二区三区-动漫成人-动漫成人无码精品一区二区三区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

JavaScript中console.log的意思、作用及用法介紹

admin
2025年2月6日 11:40 本文熱度 33

在Web網頁開發的JavaScript編程領域中,console.log()是一種常見的調試和輸出信息的方法。許多開發者在編寫代碼時經常使用console.log(),但對于初學者或非技術人員來說,可能不清楚console.log()的含義、作用以及如何正確使用。本文將介紹console.log()的意思、作用和用法,幫助讀者更好地理解和使用這個常見的編程工具。

一、console.log()的意思

在JavaScript編程語言中,console.log()是一個用于在控制臺輸出信息的方法。它可以接受一個或多個參數,并將這些參數的值輸出到開發者工具的控制臺窗口中。console.log()是一種便捷的方式,用于調試代碼、輸出變量的值或顯示程序執行的狀態。

二、console.log()的作用

console.log()的主要作用是在開發過程中提供調試和信息輸出的功能。下面是console.log()的幾個常見用途:

  • 調試代碼:通過在關鍵代碼位置插入console.log()語句,可以輸出變量的值或程序執行的狀態,以便于理解代碼的執行流程和查找錯誤。

  • 輸出變量的值:使用console.log()可以輸出變量的值,這對于驗證變量的內容、查看算法的中間結果或確保數據的正確性非常有幫助。

  • 跟蹤程序流程:將console.log()放置在代碼的不同位置,可以追蹤程序的執行路徑,了解代碼的執行順序以及條件語句的判斷結果。

  • 性能優化:通過在關鍵代碼段添加時間戳信息,可以使用console.log()輸出代碼執行的時間,以便評估程序的性能和優化潛力。

三、console.log()的用法

console.log()的用法非常簡單,可以根據需要接受一個或多個參數。下面是一些常見的用法示例:

輸出文本信息:

console.log('Hello, World!'); // 輸出:Hello, World!

輸出變量的值:

let name = 'John';let age = 25;
console.log('Name:', name, 'Age:', age); // 輸出:Name: John Age: 25

輸出對象:

let person = { name'Alice'age30 };console.log('Person:', person); // 輸出:Person: { name'Alice'age30 }

輸出表達式的結果:

let x = 10;let y = 5;
console.log('Sum:', x + y); // 輸出:Sum: 15

輸出多個參數:

console.log('Value:'10'Status:''OK'); // 輸出:Value: 10 Status: OK

console.log()是一種常見的編程工具,用于在控制臺輸出調試信息和其他信息。它可以幫助開發者理解代碼的執行流程、輸出變量的值、調試代碼并優化程序性能。console.log()的用法非常簡單,可以根據需要輸出文本、變量、對象或表達式的結果。通過充分利用console.log(),開發者可以更好地理解和調試他們的代碼,提高開發效率和代碼質量。

一般情況下,我們用來輸入信息的方法主要是用到如下四個:

1、console.log 用于輸出普通信息

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

3、console.error 用于輸出錯誤信息

4、console.warn 用于輸出警示信息

--------------------------------------------------------------------

5、console.count 統計代碼被執行的次數。

6、console.time 計時開始。console.timeEnd  計時結束。

7、console.assert 對輸入的表達式進行斷言,只有表達式為false時,才輸出相應的信息到控制臺。


詳細用法示例

console.log()


在console.log 中有很多人們意想不到的功能。雖然大多數人使用 console.log(object) 來查看對象,但是你也可以使用 console.log(object, otherObject, string),它會把它們都整齊地記錄下來,偶爾也會很方便。

不僅如此,還有另一種格式化的: console.log(msg, values),這很像 C 或 PHP 中的sprintf。

console.log('I like %s but I do not like %s.', 'Skittles', 'pus');

會像你預期的那樣輸出:

> I like Skittles but I do not like pus.

常見的占位符 %o (這是字母o,不是0),它接受對象,%s 接受字符串,%d 表示小數或整數。

另一個有趣的是 %c,這可能與你所想不太相同,它實際上是CSS值的占位符。使用%c占位符時,對應的后面的參數必須是CSS語句,用來對輸出內容進行CSS渲染。常見的輸出方式有兩種:文字樣式、圖片輸出。

console.log('I am a %cbutton', 'color: white; background-color: orange; padding: 2px 5px; border-radius: 2px')

它并不優雅,也不是特別有用。當然,這并不是一個真正的按鈕。

它有用嗎? 恩恩恩。

console.dir()

在大多數情況下,console.dir() 的函數非常類似于 log(),盡管它看起來略有不同。

下拉小箭頭將顯示與上面相同的對象詳細信息,這也可以從console.log 版本中看到。當你查看元素的結構時候,你會發現它們之間的差異更大,也更有趣。

let element = document.getElementById('2x-container');

使用 console.log 查看:

打開了一些元素,這清楚地顯示了 DOM,我們可以在其中導航。但是console.dir(element)給出了更加方便查看 DOM 結構的輸出:

這是一種更客觀地看待元素的方式。有時候,這可能是您真正想要的,更像是檢查元素。

console.warn()


可能是最明顯的直接替換 log(),你可以以完全相同的方式使用 console.warn()。唯一真正的區別是輸出字的顏色是黃色的。具體來說,輸出處于警告級別而不是信息級別,因此瀏覽器將稍微區別對待它。這具有使其在雜亂輸出中更明顯的效果。

不過,還有一個更大的優勢,因為輸出是警告而不是信息,所以你可以過濾掉所有console.log并僅保留console.warn。這對于偶爾會在瀏覽器中輸出大量無用廢話的應用程序尤其有用。清除一些無用的信息可以讓你更輕松地看到你想要的輸出。

console.table()


令人驚訝的是,這并不是更為人所知,但是 console.table() 函數旨在以一種比僅僅轉出原始對象數組更整潔的方式顯示表格數據。

例如,這里有一個數據列表。

const data = [{

  id: "7cb1-e041b126-f3b8",

  seller: "WAL0412",

  buyer: "WAL3023",

  price: 203450,

  time: 1539688433

},

{

  id: "1d4c-31f8f14b-1571",

  seller: "WAL0452",

  buyer: "WAL3023",

  price: 348299,

  time: 1539688433

},

{

  id: "b12c-b3adf58f-809f",

  seller: "WAL0012",

  buyer: "WAL2025",

  price: 59240,

  time: 1539688433

}];

如果我們使用 console.log 來輸出上面的內容,我們會得到一些非常無用的輸出:

? (3) [{…}, {…}, {…}]

點擊這個小箭頭可以展開看到對象的內容,但是,它并不是我們想要的“一目了然”。

但是 console.table(data) 的輸出要有用得多。

第二個可選參數是所需列的列表。顯然,所有列都是默認值,但我們也可以這樣做:

> console.table(data, ["id", "price"]);

這里要注意的是這是亂序的 - 最右邊的列標題上的箭頭顯示了原因。我點擊該列進行排序。找到列的最大或最小,或者只是對數據進行不同的查看非常方便。順便說一句,該功能與僅顯示一些列無關,它總是可用的。

console.table() 只能處理最多1000行,因此它可能不適合所有數據集。

console.assert()


assert() 與 log() 是相同的函數,assert()是對輸入的表達式進行斷言,只有表達式為false時,才輸出相應的信息到控制臺,示例如下:

var arr = [1, 2, 3];

console.assert(arr.length === 4);

有時我們需要更復雜的條件句。例如,我們已經看到了用戶 WAL0412 的數據問題,并希望僅顯示來自這些數據的事務,這是直觀的解決方案。

console.assert(tx.buyer === 'WAL0412', tx);

這看起來不錯,但行不通。記住,條件必須為false,斷言才會執行,更改如下:

console.assert(tx.buyer !== 'WAL0412', tx);

與其中一些類似,console.assert() 并不總是特別有用。但在特定的情況下,它可能是一個優雅的解決方案。

console.count()


另一個具有特殊用途的計數器,count只是作為一個計數器,或者作為一個命名計數器,可以統計代碼被執行的次數。

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

  if(i % 2) {

    console.count('odds');

  }

  if(!(i % 5)) {

    console.count('multiplesOfFive');

  }

  if(isPrime(i)) {

    console.count('prime');

  }

}

這不是有用的代碼,而且有點抽象。這邊也不打算演示 isPrime 函數,假設它是成立的。

執行后我們會得到一個列表:

odds: 1

odds: 2

prime: 1

odds: 3

multiplesOfFive: 1

prime: 2

odds: 4

prime: 3

odds: 5

multiplesOfFive: 2

...

還有一個相關的 console.countReset(),可以使用它重置計數器。

console.trace()


trace() 在簡單的數據中很難演示。當您試圖在類或庫中找出是哪個實際調用者導致了這個問題時,它的優勢就顯現出來了。

例如,可能有 12 個不同的組件調用一個服務,但是其中一個組件沒有正確地設置依賴項。

export default class CupcakeService {


  constructor(dataLib) {

    this.dataLib = dataLib;

    if(typeof dataLib !== 'object') {

      console.log(dataLib);

      console.trace();

    }

  }

  ...

}

這里使用 console.log() 僅告訴我們傳遞數據dataLib是什么 ,而沒有具體的傳遞的路徑。不過,console.trace() 會非常清楚地告訴我們問題出在 Dashboard.js,我們可以看到是 new CupcakeService(false) 導致錯誤。

console.time()

console.time() 是一個用于跟蹤操作時間的專用函數,它是跟蹤 JavaScript 執行時間的好方法。

function slowFunction(number) {

  var functionTimerStart = new Date().getTime();

  // something slow or complex with the numbers.

  // Factorials, or whatever.

  var functionTime = new Date().getTime() - functionTimerStart;

  console.log(`Function time: ${ functionTime }`);

}

var start = new Date().getTime();


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

  slowFunction(i);

}


var time = new Date().getTime() - start;

console.log(`Execution time: ${ time }`);

這是一種老派的做法,我們使用 console.time() 來簡化以上代碼。

const slowFunction = number =>  {

  console.time('slowFunction');

  // something slow or complex with the numbers.

  // Factorials, or whatever.

  console.timeEnd('slowFunction');

}

console.time();

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

  slowFunction(i);

}

console.timeEnd();

我們現在不再需要做任何計算或設置臨時變量。

console.group()


// this is the global scope

let number = 1;

console.group('OutsideLoop');

console.log(number);

console.group('Loop');

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

  number = i + number;

  console.log(number);

}

console.groupEnd();

console.log(number);

console.groupEnd();

console.log('All done now');

輸出如下:

并不是很有用,但是您可以看到其中一些是如何組合的。

class MyClass {

  constructor(dataAccess) {

    console.group('Constructor');

    console.log('Constructor executed');

    console.assert(typeof dataAccess === 'object', 

      'Potentially incorrect dataAccess object');

    this.initializeEvents();

    console.groupEnd();

  }

  initializeEvents() {

    console.group('events');

    console.log('Initialising events');

    console.groupEnd();

  }

}

let myClass = new MyClass(false);

這是很多工作和很多調試信息的代碼,可能不是那么有用。但它仍然是一個有趣的想法,這樣寫使你的日志記錄更加清晰。

清除控制臺和內存

如果你想清除控制臺及其內存,輸入如下:

clear()

該文章在 2025/2/6 12:03:52 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 亚洲精品国产成人一区二区 | 美女扒开胸罩露出奶头的图片 | 少妇私密精油SPA按摩 | 日本一线二线高清免费视频 | 色综合久久久久综合99 | 一区二区三区国模大胆 | 国产亚洲区在线视频观看 | 久久久网久久久久合久久久久 | 无码日韩一区二区免费 | av中文字幕一区二区 | 性色欲情网站IWWW | 久久久久久久久久久福利 | 国产肥熟女视频一区二区 | 国产无码黄色网站在线观看 | 亚洲另类无码专区首页 | 国产精品ⅴideossex国产高清 | 亚洲九九视频 | 国产成人国产日韩欧美 | 国产成人高清在线观看播放 | 亚洲欧美国产国产一区第二页 | 国产成人精选在线 | 国产成熟妇人高潮A片 | 国产成人精品日本视频 | 一本色道久久加勒比精品 | 成人在线欧美 | 色偷偷免费视频 | 九九精品久久久久久噜噜中文 | 亚洲精品国产福利一二区 | 动漫在线观看片A免费观看 法国艳妇LARALATEXD | 亚洲先锋影院一区二区 | 亚洲精品无码无卡在线观看 | 精品日韩国产欧美视频 | 99久久中文字幕人妻 | 天天干天天爱天天 | 亚洲午夜无码久久 | 91亚洲午夜精品久久久久久一区 | 久久精品亚洲精品国产色婷 | 久久精品女人天堂aⅴ免费观看 | 精品欧美国产一区 | 夜夜草官网 | 真实国产精品视频国产网 |