我正在尝试从一本书(Jeremy McPeak 的《Beginner JavaScript》)中学习 JS,但我被这段代码困住了:
<script>
var myString = "56.02 degrees centigrade";
document.write("\"" + myString + "\" is " + parseInt(myString, 10) +
" as an integer" + "<br/>");
</script>
html 中的结果是这样的:"56.02 degrees centigrade" is 56 as an integer
.
我不明白的是,书中没有解释——为什么这段代码要这样写?有人可以用外行的话解释一下为什么我们以 "\""
开头吗? (为什么不只是 \"
因为这是双引号的转义序列),为什么之后我们必须写 "\"
(如果我们想要 myString 的右引号,不应该只是 \"
吗),为什么后面写的是: is "
?基本上,第一部分真的让我很困惑。
最佳答案
在 Javascript(以及大多数其他语言)中,您可以通过在一对引号字符之间放置一个字符序列来编写字符串。所以包含abc
的字符串写为
"abc"
如果您希望字符串中的某个字符成为引号字符,则必须对其进行转义,这样它就不会被视为字符串的结尾。因此,包含 abc"def
的字符串将写为:
"abc\"def"
这在您的代码中得到了演示
"\" is "
这是一个以文字引号开头的字符串,后跟单词 is
。
如果您想要一个仅包含引号字符的字符串,则需要在引号之间放置一个转义引号,以表明您正在编写一个字符串:
"\""
这就是代码中串联表达式开头的内容。
如果你刚刚写了
\"
这将是一个转义引号。但由于它不在引号内,所以它不是一个字符串——它不是任何内容的有效语法。
在 Javascript 中,还有另一种选择。它允许使用单引号和双引号来包围字符串。因此,如果您有一个包含双引号的字符串,则可以将其放在单引号内:
'"'
您不需要转义它,因为双引号不会结束以单引号开头的字符串。相反,如果要在字符串中放入单引号,请使用双引号作为分隔符:
"This is Barry's answer"
关于JavaScript 初学者遇到的引号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31062544/