为什么console.log的行为是这样的?

在node.js解释器上: –

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

但是,只要在node.js解释器中input: –

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

现在有人为什么发生这种事? 只是想知道更多关于node.js在此先感谢您的答案。

logging一个string时,它会被完全parsing,每个字符都会被转义出来,没关系,这是预期的行为。

显示string(不logging ),解释器试图以最简单的forms显示它。 这也将避免对正在查看用户的任何误解。 所以,基本上:

  • 显示"\"hi\""将会显示'"hi"' ,因为你可以在单引号分隔的string内写一个双引号而不用转义,而且读起来更容易。

  • 显示'\'hi\''将显示"'hi'" ,出于同样的原因。

  • 使用单引号和双引号显示"\"hi\", 'hey'" ,将强制解释器显示原始string (与创build它的forms相同),因为无法显示单引号或双引号 ,所以只能显示为"\"hi\", 'hey'"

自己尝试一下:

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