JavaScript 初学者麻烦带引号
JavaScript beginner troubles with quotation marks
我正在尝试从一本书(Jeremy McPeak 的初学者 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 "
?基本上,第一部分让我很困惑。
myString 是一个字符串。函数 parseInt(string, radix) 将字符串解析为整数 (see this for more examples).
引号是这样的,以便输出显示引号。如果您不想在输出中使用引号,则可以将 js 简化为:
document.write(myString + " is " + parseInt(myString, 10) + " as an integer" + "<br/>");
但这在展示 parseInt 的工作原理时并不那么清楚。
在Javascript(以及大多数其他语言)中,您可以通过在一对引号字符之间放置一系列字符来编写字符串。所以包含abc
的字符串写成
"abc"
如果你想让字符串中的其中一个字符成为引号字符,你必须将它转义,这样它就不会被视为字符串的结尾。因此,包含 abc"def
的字符串将写为:
"abc\"def"
这在您的代码中得到了证明
"\" is "
这是一个字符串,以文字引号开头,后跟单词 is
。
如果您想要一个包含 仅 引号字符的字符串,您需要在引号之间放置一个转义引号,以表明您正在编写一个字符串:
"\""
这就是您代码中连接表达式开头的内容。
如果你刚刚写了
\"
那将是转义引号。但是因为它不在引号内,所以它不是字符串——它不是任何内容的有效语法。
在Javascript中,还有一个选项。它允许使用单引号和双引号将字符串括起来。所以如果你有一个包含双引号的字符串,你可以把它放在单引号内:
'"'
您不需要转义它,因为双引号不会结束以单引号开头的字符串。相反,如果要在字符串中放置单引号,则使用双引号作为分隔符:
"This is Barry's answer"
我正在尝试从一本书(Jeremy McPeak 的初学者 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 "
?基本上,第一部分让我很困惑。
myString 是一个字符串。函数 parseInt(string, radix) 将字符串解析为整数 (see this for more examples).
引号是这样的,以便输出显示引号。如果您不想在输出中使用引号,则可以将 js 简化为:
document.write(myString + " is " + parseInt(myString, 10) + " as an integer" + "<br/>");
但这在展示 parseInt 的工作原理时并不那么清楚。
在Javascript(以及大多数其他语言)中,您可以通过在一对引号字符之间放置一系列字符来编写字符串。所以包含abc
的字符串写成
"abc"
如果你想让字符串中的其中一个字符成为引号字符,你必须将它转义,这样它就不会被视为字符串的结尾。因此,包含 abc"def
的字符串将写为:
"abc\"def"
这在您的代码中得到了证明
"\" is "
这是一个字符串,以文字引号开头,后跟单词 is
。
如果您想要一个包含 仅 引号字符的字符串,您需要在引号之间放置一个转义引号,以表明您正在编写一个字符串:
"\""
这就是您代码中连接表达式开头的内容。
如果你刚刚写了
\"
那将是转义引号。但是因为它不在引号内,所以它不是字符串——它不是任何内容的有效语法。
在Javascript中,还有一个选项。它允许使用单引号和双引号将字符串括起来。所以如果你有一个包含双引号的字符串,你可以把它放在单引号内:
'"'
您不需要转义它,因为双引号不会结束以单引号开头的字符串。相反,如果要在字符串中放置单引号,则使用双引号作为分隔符:
"This is Barry's answer"