为什么 console.log 会这样?

Why does console.log behave like this?

关于node.js解释器:-

console.log("A newline character is written like \"\ n \".");
//output is:-
// A newline character is written like "\ n ".

但是当你在 node.js 解释器中简单地输入这个时:-

"A newline character is written like \"\ n \"."
// it prints out:-
//'A newline character is written like "\ n ".'

现在有人知道为什么会这样吗? 只是想知道更多关于 node.js 预先感谢您的回答。

logging 一个字符串时,它被完全解析并且每个字符都被转义,没关系,这是预期的行为。

尽管如此,显示一个字符串(不是logging),解释器试图以最简单的方式显示它form. 这也将避免对正在查看它的用户产生任何误解。所以,基本上:

  • 显示"\"hi\""会显示'"hi"',因为你可以在单引号分隔的字符串中写一个双引号而不用转义,这样更容易阅读。

  • 显示'\'hi\''会显示"'hi'",同理

  • 用单引号和双引号显示 "\"hi\", 'hey'",将强制解释器向您显示原始字符串(与您使用的格式相同创建了它),因为如果不转义单引号或双引号就无法显示它,所以它只能显示为"\"hi\", 'hey'".

亲身体验一下:

var a = "\"hi\", 'hey'";
> "\"hi\", 'hey'"

var b = "\"hi\"";
> '"hi"'

console.log(a + ", " + b);
> "hi", 'hey', "hi"