这个问题不是很重要,但是,我发现当反斜杠记录到控制台时,值不会按预期输出。Node.js关心反斜杠
请在终端中尝试以下两个示例来确认结果;我已经尝试过版本0.10和0.12,并试图用'UTF'替代UTF十六进制代码和字符代码等。行为是一样的。
例子一使用String.replace()
。我发现这种意外的行为最初使用正则表达式,类似于.replace(/([*\-\[\] etc...])/g, '\\$&')
,但是,下面的代码简化了这种情况。其中
var bcks = '\\', str = 'Hello*';
console.log('Backslash', bcks, '\nString', str);
str.replace('*', bcks);
的输出是下面的:
Backslash \
String Hello*
'Hello\\'
实施例2而在对象中的一个值使用反斜杠。在使用.replace(etc ...)
时也发现了这种情况,但在将其减少到以下之后,意外行为仍然很明显。
var tmp = {key: 'Hello\\'}; console.log(tmp); console.log(tmp.key);
其输出如下:
{ key: 'Hello\\' }
Hello\
这可能是stdout
仅仅是这种行为的原因,但如果不是这样,那么我担心的是,这个问题是不是仅限于日志记录。
有人可以解释这种行为吗?
编辑:在两个示例中,在任何时候一个应该安慰串或对象,输出双反斜杠。
在这两种情况下,当我运行代码时,我会得到您所说的输出。 – Quentin
那么它输出什么呢? – Bergi
预期的行为是每次都看到一个反斜杠。我会编辑我的帖子,使其更清楚一点。 –