uTools-Manuals/docs/javascript/Reference/Errors/Unterminated_string_literal.html
2019-04-21 11:50:48 +08:00

41 lines
3.1 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<article id="wikiArticle">
<div></div>
<h2 id="信息">信息</h2>
<pre><code class="language-javascript">SyntaxError: unterminated string literal
</code></pre>
<h2 id="错误类型">错误类型</h2>
<p><a href="Reference/Global_Objects/SyntaxError" title="SyntaxError 对象代表尝试解析语法上不合法的代码的错误。"><code>SyntaxError</code></a> </p>
<h2 id="哪里出错了?">哪里出错了?</h2>
<p>某处 js 解析字符串出错。字符串必须使用单引号或双引号来正确的关闭。在 Javascript 中使用单引号的字符和双引号的字符串是没有区别的。字符串用<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Escape_notation">转义字符</a>不是单引号就是双引。为解决这个错误,检查一下:</p>
<ul>
<li>你字符串的引号是否成对。</li>
<li>你是否正确使用了转义序列</li>
<li>你的字符串是否在多行中解析正常。</li>
</ul>
<h2 id="示例">示例</h2>
<h3 id="多行字符串">多行字符串</h3>
<p>在javascript中你不能够直接使用多行字符串赋值给一个变量。如下</p>
<pre><code class="language-js example-bad">var longString = "This is a very long string which needs
to wrap across multiple lines because
otherwise my code is unreadable.";
// SyntaxError: unterminated string literal</code></pre>
<p>可以使用<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Addition">"+"运算符</a>,反斜杠,或<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals">模板字符串</a>来代替多行。“+”运算符的使用如下:</p>
<pre><code class="language-js example-good">var longString = "This is a very long string which needs " +
"to wrap across multiple lines because " +
"otherwise my code is unreadable.";
</code></pre>
<p>或者你可以使用“\”在每一行的末尾,以表示该字符串在下一行继续。要确保“\“之后没有没有空格和任何其他的字符,及缩进,否则该“\”将不会起作用。使用方法如下:</p>
<pre><code class="language-js example-good">var longString = "This is a very long string which needs \
to wrap across multiple lines because \
otherwise my code is unreadable.";
</code></pre>
<p>另一种方式是使用 ES 2015 的环境所支持<a class="new" href="Reference/Template_literals" rel="nofollow">模板字符串</a>(反引号` `)。</p>
<pre><code class="language-js example-good">var longString = `This is a very long string which needs
to wrap across multiple lines because
otherwise my code is unreadable.`;</code></pre>
<h2 id="相关">相关</h2>
<ul>
<li><a href="Reference/String" title="此页面仍未被本地化, 期待您的翻译!"><code>String</code></a> </li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals">模板字符串</a></li>
</ul>
</article>