NodeJS在对象中处理单引号

时间:2015-11-19 23:21:40

标签: javascript node.js string object escaping

我发现节点v0.10有一些我无法在Chrome中复制的行为。它会在每个'

之前自动添加\

所以这将是脚本和输出:

var test = "'test";
var testObj = {test:test};

console.log(test); // => 'test
console.log(testObj); // => {'test':'\'test'}

在浏览器控制台中,我没有看到\后面自动附加\ 这是节点的良好和正常行为吗?这是我目前对使用某个NPM软件包遇到的问题的怀疑,但我似乎无法迫使节点无法逃脱单引号

1 个答案:

答案 0 :(得分:0)

这只是从Chrome到node.js的console.log()实施的差异。它对代码的执行没有任何影响。

console.log()的node.js实现正试图将'test显示为有效的Javascript字符串。因为默认情况下,当它们是属性值时,引用带有单引号的字符串,显示它的唯一方法是通过转义嵌入的单引号。

这种差异不应该以任何方式影响您的运行代码。在这两种情况下,底层的Javascript属性都是相同的。这只是console.log()中的实现差异,它不受任何开放标准的约束,因此每个实现者都会自行选择如何显示console.log()输出。