ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 7.在控制台上打印信息(`console.*`) > 原文: [http://exploringjs.com/impatient-js/ch_console.html](http://exploringjs.com/impatient-js/ch_console.html) > > 贡献者:[Hunter-liu](https://github.com/lq920320) 打印是不属于 JavaScript 语言标准的功能。但是,我们在这里进行的所有操作,浏览器和 Node.js 都是支持的。 打印意味着“在控制台上显示内容”,其中“控制台”是浏览器控制台或运行 Node.js 的终端。 完整的`console.*` API 在 [MDN 的网页](https://developer.mozilla.org/en-US/docs/Web/API/console) 以及 [Node.js 官网](https://nodejs.org/api/console.html)都有相关文档。接下来我们将快速浏览以下两个操作: - `console.log()` - `console.error()` ### 7.1. 打印值:`console.log()`(标准输出) 此操作有两种形式: ```js console.log(...values: any[]): void console.log(pattern: string, ...values: any[]): void ``` #### 7.1.1. 打印多个值 第一中形式在控制台上打印(文本)值: ```js console.log('abc', 123, true); // Output: // abc 123 true ``` `console.log()` 始终在末尾打印换行符。因此,如果你直接调用而不加任何参数,它只会打印一个换行符。 #### 7.1.2. 打印替换的字符串 第二种形式可以进行替换字符串: ```js console.log('Test: %s %j', 123, 'abc'); // Output: // Test: 123 "abc" ``` 你可以用于替换的一些指令: - `%s`将相应的值转换为字符串输出。 ```js console.log('%s %s', 'abc', 123); // Output: // abc 123 ``` - `%o`将被替换的对象转为字符串形式输出。 ```js console.log('%o', {foo: 123, bar: 'abc'}); // Output: // { foo: 123, bar: 'abc' } ``` - `%j`将被替换的值转换为 JSON 字符串输出。 ```js console.log('%j', {foo: 123, bar: 'abc'}); // Output: // {"foo":123,"bar":"abc"} ``` - `%%`插入一个`%`。 ```js console.log('%s%%', 99); // Output: // 99% ``` ### 7.2. 打印错误信息:`console.error()`(标准错误) `console.error()`与`console.log()`的作用相同,但它的日志内容被视为错误信息。对于 Node.js,这意味着在 Unix 上输出的是 stderr(标准错误) 而不是 stdout(标准输出)。 ### 7.3. 通过`JSON.stringify()`打印嵌套对象 [`JSON.stringify()`](/docs/50.md#4131-jsonstringifyvalue-replacer-space) 偶尔用于打印嵌套对象: ```js console.log(JSON.stringify({first: 'Jane', last: 'Doe'}, null, 2)); ``` 输出: ```js { "first": "Jane", "last": "Doe" } ```