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
为什么两行结果不同?
答案 0 :(得分:1)
如果您查看this documentation,则可以找到答案。所有参数都传递给util.format()
,如果第一个参数不是字符串,则返回所有给定参数的串联。
在连接它们之前,它首先使用util.inspect()
将每个参数转换为字符串表示形式。这解释了为什么两行返回不同的结果。