达到完美境界并不是无以复加,而是无可去除。——<安托万·德·圣·埃克苏佩里>
作者:Ashish Lahoti
译者:cl9000
来源:https://codingnconcepts.com/javascript/console-api-walkthrough/
在本文中,我们将通过一些简单的例子演示 JavaScript
的 Console API
方法
1. console.log
console.log
是将值记录到控制台的最常用方法:
1 | const name = 'Console!'; |
我们还可以使用 String Template Literal
(使用 ${}
包裹 变量值):
1 | console.log(`hello, ${name}`); //hello, Console! |
我们还可以在单个语句中将多个值记录到控制台:
1 | const key = 'value'; |
key: Console! number: 1 fruits: (3) [“apple”, “banana”, “mango”] obj: {a: 1, b: 2}
就像一样console.log,我们还有其他方法可以将值记录到控制台:
console.debug
就像带有“调试”日志级别的console.log
一样。通常,浏览器的默认日志级别为info
,直到您将日志级别更改为debug
才会显示。console.info
就像console.log
具有“ info”
日志级别console.warn
将警告打印到控制台console.error
将对象作为错误打印到控制台,并包括堆栈跟踪
1 | console.debug('Let me find you'); //won't be displayed |
Just FYI
➤ ⚠️ I told you !
➤ ⓧ I cannot do it.
2. console.assert
您可以使用进行一些断言测试 console.assert
。
第一个参数是一个表达式,如果计算结果为false,则断言失败,第二个参数作为错误输出到控制台。
1 | // this will pass, nothing will be logged |
➤ ⓧ Assertion failed: 3 not === to “3”
您还可以在断言失败时输出的第二个参数中传递一个对象:
1 | const x = 5; |
Output
➤ ⓧ Assertion failed: ➤ {x: 5, y: 3, reason: “x is expected to be less than y”}
3. console.clear
您可以使用 console.clear
以下命令清除控制台:
1 | console.clear(); |
4. console.count
console.count
方法用于计算使用相同提供的标签调用它的次数。例如,这里有两个计数器,一个用于偶数,一个用于奇数:
1 | [1, 2, 3, 4, 5].forEach(nb => { |
Output
odd: 1
even: 1
odd: 2
even: 2
odd: 3
console.countReset如果我们在上面的示例之后执行以下操作,则该方法用于将计数器重置为1,
1 | console.countReset('even'); |
Output
even: 1
odd: 1
5. console.dir
您可以使用以下命令以格式化的方式打印对象的所有内部属性 console.dir
我们可以打印的原型方法数组或对象使用console.dir,
1 | console.dir(["foo", "bar", "qux"]); //Array |
Output
▼ Array(3)
0: "foo"
1: "bar"
2: "qux"
length: 3
▼ proto: Array(0)
➤ concat: ƒ concat()
➤ constructor: ƒ Array()
➤ …
▼ Object
a: "foo"
b: "bar"
➤ proto: Object
我们也可以将功能的范围和封闭使用打印console.dir,
1 | var outerFunc = function(c){ |
Output
▼ ƒ innerFunc(d)
arguments: null
caller: null
length: 1
name: "innerFunc"
➤ prototype: {constructor: ƒ}
➤ proto: ƒ ()
▼ [[[Scopes]]: Scopes[2]
➤ 0: Closure (outerFunc) {c: 3, a: 1}
➤ 1: Global {parent: Window, opener: null, top: Window, length: 1, frames: Window, …}
6. console.dirxml
您可以使用树状结构以HTML格式打印DOM元素 console.dirxml
1 | console.dirxml(document.body); |
Output
▼ <body>
<h1>hello</h1>
<script>
console.dirxml(document.body);
</script>
</body>
7. console.group
您可以使用console.group和将日志消息分组在一起console.groupEnd。
1 | console.group("API Details"); |
Output
▼ API Details
Scheme : HTTPS
Host : example.com
请注意,使用记录的组消息console.group最初已扩展。如果您希望默认情况下将它们折叠起来,则可以console.groupCollapsed改用:
1 | console.groupCollapsed("API Details"); |
Output
▶ API Details
您可以进一步将消息分组到嵌套级别。这样,您就可以以干净的格式将层次结构数据打印到控制台:
1 | console.group("API Details"); |
Output
▼ API Details
Scheme : HTTPS
Host :example.com
▼ User API
Method : GET
Endpoint : /user
▼ Query Parameters
id : 1
8. console.table
您可以使用以表格格式打印数据 console.table
。该方法对于可视化大型对象和数组非常有用。
1 | var john = { firstName: "John", lastName: "Smith", age: 41 }; |
Output
1 | ┌─────────┬───────────┬──────────┬─────┐ |
您还可以选择以这种方式处理大型对象时仅打印少量属性:
1 | console.table([john, jane, emily], ["firstName"]); |
Output
1 | ┌─────────┬───────────┐ |
9. console.time
您可以通过以 console.time
开头 和 以 console.timeEnd
结束来打印代码执行所花费的时间。
计时器可以有一个可选标签,如果您使用带标签的计时器,则两者 console.time
和 console.timeEnd
标签应具有相同的标签。
1 | console.time('fetching data'); |
Output
fetching data: 0.435791015625ms
▶ (10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
10. console.trace
您可以用来 console.trace()
将方法执行流的堆栈跟踪打印到控制台。
1 | const first = () => { second(); }; |
您将获得控制台输出,可以单击以导航到源。@ file_name:line_number
Output
▼ The trace
fourth @ test:4
third @ test:3
second @ test:2
first @ test:1
(anonymous) @ test:5
11. console.log格式
console.log
还提供了格式设置,以使我们的日志消息在其他消息中脱颖而出。这使我们能够在控制台中找到重要消息。
%s
将值格式化为字符串%d
或%i
将值格式化为整数%f
将值格式化为浮点数%o
用于打印为可扩展的DOM
元素%O
用于打印为JavaScript
对象%c
用于将CSS
样式规则应用于第二个参数指定的输出字符串
我们将值格式化为字符串,整数和浮点数:
1 | console.log('The %s is turning %d in next %f months', 'kid', 18, 2.5); |
让我们看看将DOM打印为可扩展HTML元素树或JSON对象树有什么大惊小怪的:
1 | console.log('%o', document.body); //Print HTML element tree |
Output
▶<body class="body" data-gr-c-s-loaded="true"> ... <body>
▶body.body
您可以像这样打印彩色格式化的日志消息:
1 | const red = 'color:red'; |
Output
Hello World foo bar
还可以使用多个样式属性将时尚的横幅打印到控制台:
1 | console.log( |
参考
- https://codingnconcepts.com/javascript/console-api-walkthrough/
- MDN Web Docs - Console_API https://developer.mozilla.org/zh-CN/docs/Web/API/Console_API
…
关注【公众号】,了解更多。
关注【公众号】,了解更多。
关注【公众号】,了解更多。
赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!