Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript转义字符串don’;不能使用Firefox开发工具_Javascript_Firefox_Escaping_Firefox Developer Tools - Fatal编程技术网

JavaScript转义字符串don’;不能使用Firefox开发工具

JavaScript转义字符串don’;不能使用Firefox开发工具,javascript,firefox,escaping,firefox-developer-tools,Javascript,Firefox,Escaping,Firefox Developer Tools,当我在Firefox上尝试转义字符串时,我注意到转义字符串在Firefox开发工具上不起作用,除非它们位于控制台.log()或警报()消息中 例如,如果您只是在控制台内键入以下消息: "The man whispered, \"please speak to me.\"" 结果将与您键入的内容完全相同: "The man whispered, \"please speak to me.\"" 但是,如果将消息包含在console.log()中,则它可以正常工作: 输入: console.lo

当我在Firefox上尝试转义字符串时,我注意到转义字符串在Firefox开发工具上不起作用,除非它们位于
控制台.log()或
警报()消息中

例如,如果您只是在控制台内键入以下消息:

"The man whispered, \"please speak to me.\""
结果将与您键入的内容完全相同:

"The man whispered, \"please speak to me.\""
但是,如果将消息包含在
console.log()
中,则它可以正常工作:

输入:

console.log("The man whispered, \"please speak to me.\"");
输出:

The man whispered, "please speak to me."

我不知道这是某种bug还是有更深层次的东西我不知道,所以我把它贴在这里,我希望有人能对此进行详细说明。

Firefox的Web控制台作为一个窗口和一个
窗口控制台
转储其输出的地方发挥双重作用。当您在Web控制台中键入
'“
时,它将该字符串作为一行Javascript进行读取和求值,并以它认为可以使用的形式向您提供返回值。由于
'“
求值为字符串,Firefox将该结果作为字符串文本,
“\”“
。但它仍然只包含一个字符,U+0022引号。通过进一步的测试,您可以看到这一点:

» var str = '"'
⬅ undefined
» str
⬅ "\""
» str.length
⬅ 1
» str.charCodeAt(0)
⬅ 34
另一方面,当您使用
console.log()
时,Web控制台会将提供给
console.log
的对象作为日志消息转储。Firefox对什么是有用的日志消息有不同的想法:对于字符串,易于阅读的消息比可以复制回代码中的字符串文本要好。因此,

控制台日志(str) “调试器评估代码:1:1 ⬅ 未定义

注意底部的
未定义的
:控制台仍在应答。
行是
Console.log
侵入您的对话。

Firefox的Web控制台作为一个窗口和
窗口的双重职责。控制台
转储其输出。当您在Web控制台中键入
'“
时,它将该字符串作为一行Javascript进行读取和求值,并以它认为可以使用的形式向您提供返回值。由于
'“
求值为字符串,Firefox将该结果作为字符串文本,
“\”“
。但它仍然只包含一个字符,U+0022引号。通过进一步的测试,您可以看到这一点:

» var str = '"'
⬅ undefined
» str
⬅ "\""
» str.length
⬅ 1
» str.charCodeAt(0)
⬅ 34
另一方面,当您使用
console.log()
时,Web控制台会将提供给
console.log
的对象作为日志消息转储。Firefox对什么是有用的日志消息有不同的想法:对于字符串,易于阅读的消息比可以复制回代码中的字符串文本要好。因此,

控制台日志(str) “调试器评估代码:1:1 ⬅ 未定义

请注意底部的
未定义的
:控制台仍在应答。
行是
控制台。日志
干扰了您的对话。

我现在明白了。非常解析的回答!非常感谢。我现在明白了。非常解析的回答!非常感谢。