7.在控制台上打印信息(console.*

原文: http://exploringjs.com/impatient-js/ch_console.html

译者:Hunter-liu

打印是不属于 JavaScript 语言标准的功能。但是,我们在这里进行的所有操作,浏览器和 Node.js 都是支持的。

打印意味着“在控制台上显示内容”,其中“控制台”是浏览器控制台或运行 Node.js 的终端。

完整的console.* API 在 MDN 的网页 以及 Node.js 官网都有相关文档。接下来我们将快速浏览以下两个操作:

  • console.log()
  • console.error()

7.1. 打印值:console.log()(标准输出)

此操作有两种形式:

console.log(...values: any[]): void
console.log(pattern: string, ...values: any[]): void

7.1.1. 打印多个值

第一中形式在控制台上打印(文本)值:

console.log('abc', 123, true);
// Output:
// abc 123 true

console.log() 始终在末尾打印换行符。因此,如果你直接调用而不加任何参数,它只会打印一个换行符。

7.1.2. 打印替换的字符串

第二种形式可以进行替换字符串:

console.log('Test: %s %j', 123, 'abc');
// Output:
// Test: 123 "abc"

你可以用于替换的一些指令:

  • %s将相应的值转换为字符串输出。

    console.log('%s %s', 'abc', 123);
    // Output:
    // abc 123
    
  • %o将被替换的对象转为字符串形式输出。

    console.log('%o', {foo: 123, bar: 'abc'});
    // Output:
    // { foo: 123, bar: 'abc' }
    
  • %j将被替换的值转换为 JSON 字符串输出。

    console.log('%j', {foo: 123, bar: 'abc'});
    // Output:
    // {"foo":123,"bar":"abc"}
    
  • %%插入一个%

    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() 偶尔用于打印嵌套对象:

console.log(JSON.stringify({first: 'Jane', last: 'Doe'}, null, 2));

输出:

{
  "first": "Jane",
  "last": "Doe"
}

书籍推荐