【问题标题】:Difference between double and single quotes双引号和单引号的区别
【发布时间】:2012-10-23 16:19:30
【问题描述】:

我有一个 MVC 应用程序,我在其中使用 jQuery 将一些文本插入到 DOM 中。

如果我使用:

$("#toggle").text('<%: translated.Show %>');

文本被渲染。

如果我使用:

$("#toggle").text("<%: translated.Show %>");

如果资源字符串用双引号括起来会引发 JavaScript 错误,请注意单引号括起工作版本,双引号括起错误版本。

谁能解释为什么,我认为 Javascript 中的单引号和双引号之间几乎没有区别。

“translated.Show”字符串不包含引号,只是纯文本。

【问题讨论】:

  • 单引号或双引号在 JavaScript 中没有区别,除了需要转义的内容。你的问题在别处。请提供一个可重现的例子......我想你会发现你的报价不是问题。
  • 我的第一个猜测是&lt;%: translated.Show %&gt; 被渲染成包含引号
  • 实际输出的源代码是什么?让我猜猜:translated.Show 包含引号...?!
  • 它会抛出一个秘密的 Javascript 错误,或者你可以显示它吗? )
  • 如果您遇到 JavaScript 问题,请显示 JavaScript 而不是生成 JavaScript 的 ASP/JSP/etc。如果您遇到 JavaScript 错误,请告诉我们错误是什么。

标签: javascript model-view-controller


【解决方案1】:

JS中双引号和单引号的唯一区别是单引号内单引号必须转义,双引号内双引号必须转义。

问题很可能是translated.Show 中的数据包含双引号(尽管您保证它不……引号字符被视为纯文本的一部分)。

确保您关注Rule 3: JavaScript Escape Before Inserting Untrusted Data into JavaScript Data

【讨论】:

    猜你喜欢
    • 2021-08-29
    • 2016-08-31
    • 2017-11-10
    相关资源
    最近更新 更多