在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的信息 提前感谢您的回答。
答案 0 :(得分:6)
当 记录 一个字符串时,它会被完全解析并且每个字符都被转义,这没关系,这是预期的行为。
非正常, 显示字符串(不是日志记录),解释程序会尝试以最简单的形式显示它。这也会避免对正在看它的用户有任何误解。所以,基本上:
显示"\"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"