我试图从书中学习JS(Jeremy McPeak的初学者JavaScript),但我仍然坚持使用这段代码:
<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 "
?基本上,第一部分真的让我困惑。
答案 0 :(得分:3)
在Javascript(和大多数其他语言)中,您通过在一对引号字符之间放置一系列字符来编写字符串。因此,包含abc
的字符串将写为
"abc"
如果您希望字符串中的某个字符是引号字符,则必须将其转义,因此不会将其视为字符串的结尾。因此,包含abc"def
的字符串将写为:
"abc\"def"
这在您的代码中有所体现
"\" is "
这是一个字符串,以字面引号开头,后跟单词is
。
如果你想要一个只包含 引号字符的字符串,你需要在引号之间放一个表示你正在写字符串的引号:
"\""
这就是代码中串联表达式开头的内容。
如果你刚写了
\"
这将是一个逃脱的报价。但是因为它不在引号内,所以它不是字符串 - 它不是任何有效的语法。
在Javascript中,还有另一种选择。它允许单引号和双引号用于包围字符串。因此,如果您有一个包含双引号的字符串,则可以将其放在单引号中:
'"'
您不需要转义它,因为双引号不会结束以单引号开头的字符串。相反,如果要在字符串中放入单引号,请使用双引号作为分隔符:
"This is Barry's answer"
答案 1 :(得分:1)
myString是一个字符串。函数parseInt(string,radix)将字符串解析为整数(see this for more examples)。
引号是它们的方式,以便输出显示引号。如果您不想在输出中使用引号,则js可以简化为:
document.write(myString + " is " + parseInt(myString, 10) + " as an integer" + "<br/>");
但在展示parseInt的工作方式时,这并不清楚。