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

2024-03-09

在 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 的信息 预先感谢您的回答。


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

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

  • 显示中"\"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"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 console.log 的行为是这样的? 的相关文章

随机推荐