如果通过不同的参数,为什么console.log会得到不同的结果?

时间:2018-07-21 01:46:23

标签: javascript json node.js

demo.js:

let obj = { foo: "bar\"bar" }
console.log(JSON.stringify(obj))        // it will get: {"foo":"bar\"bar"}
console.log(999, JSON.stringify(obj))   // it will get: 999 '{"foo":"bar\\"bar"}'

然后运行:

  

节点demo.js

为什么两行结果不同?

1 个答案:

答案 0 :(得分:1)

如果您查看this documentation,则可以找到答案。所有参数都传递给util.format(),如果第一个参数不是字符串,则返回所有给定参数的串联。

在连接它们之前,它首先使用util.inspect()将每个参数转换为字符串表示形式。这解释了为什么两行返回不同的结果。

相关问题