为什么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"
- 在nodejs中的console.log循环
- 将console.log输出redirect到文件
- console.log和util.inspect不能正确打印对象
- 为什么Chrome会将引用types为Date的对象的原型视为“Object {}”,而不是“Date {}”?
- 如何在node.js中着色console.trace?
- 如何使用“console.log”在NodeJS中使用命令行“Local heroku”在“Mac Terminal”中显示多行?
- Node.js:console.log消息不显示,如果方法抛出exception…为什么?
- 卡在console.log(JSON.stringify(req))中间件
- 在txt文件中的Node.js console.log()