我得到了一些包含字符串内HTML代码的JavaScript代码。一些字符串以'\ '
开头(反斜杠,空格)。这个序列做了什么?
这很奇怪,因为在IntelliJ IDEA v14.1.4中的'\ '
之后字符串不会突出显示为HTML代码。这是一些示例代码的屏幕截图。
答案 0 :(得分:3)
它做得很少。转义空格是JavaScript字符串文字中的空格。
alert("\ " === ' ');
作者可能只想强调字符串前面有空格的事实。
答案 1 :(得分:3)
这些反斜杠只会转义后面的空格字符。
"\ "
与" "
相同。
在JavaScript字符串中,您可以转义任何字符,甚至是那些不需要转义的字符。空格不需要转义,因此在这种情况下,反斜杠不起任何作用。
答案 2 :(得分:1)
反斜杠是JavaScript中的转义字符。转义字符会改变编码语言处理紧随其后的字符的方式。在这种情况下,\ <div>
(反斜杠后跟空格,然后)与<div>
(空格,后跟)相同。在某些情况下,例如\t
,斜杠会将后面的字符转换为其他字符 - 在这种情况下是制表符。由于反斜杠后面的空格对JavaScript没有任何“特殊”意义,因此当代码在浏览器中运行时,“转义空间”只会被解释为空格。
现在,突出显示差异的原因是您的IDE根据自己对如何着色代码的理解来解释和显示跟随它们的代码。无论出于何种原因,它都不会将“绿色突出显示”的HTML识别为HTML。我同意你的IDE在转义字符有点令人困惑之后使用的着色方案,因为你的例子中显示的所有字符串(变量)都是完全合法的字符串。我(个人)希望IDE能够一致地显示它们。
在此处详细了解JavaScript转义字符用法:https://en.wikipedia.org/wiki/Escape_character#JavaScript
答案 3 :(得分:-1)
他们是转义字符。它允许解析器读取它们而不必将它们作为代码运行。
答案 4 :(得分:-1)
&#39; \&#39;是后续空间的转义字符。使用了\ here但不需要,因此空间被识别为空格而不是IDE中的错误(它不会像它引用的那样&#34;&#34; ,但作者已将其包含在内,表明它应该存在。)
查看代码的结构,如果它显示在wep页面上,它可能在每个Hallo Welt之间包含一个空格。
P.s,这不应该编译,因为你不能两次声明变量v3,你有。