单对双引号('vs')

ctr*_*yan 241 html syntax

手工编写HTML时,我总是使用单引号.我使用大量渲染的HTML,它总是使用双引号.这允许我确定HTML是手写还是生成.这是一个好主意吗?

两者有什么区别?我知道他们都工作并得到所有现代浏览器的支持,但是在不同的情况下,哪一个实际上比另一个更好?

Ait*_*ito 385

w3组织:

默认情况下,SGML要求使用双引号(ASCII十进制34)或单引号(ASCII十进制39)分隔所有属性值.当值由双引号分隔时,单引号可以包含在属性值中,反之亦然.作者也可以使用数字字符引用来表示双引号(")和单引号(').对于双引号,作者也可以使用字符实体引用".

所以...似乎没什么区别.只取决于你的风格.

  • 并且保持一致(使用'或')最有可能导致更高的压缩率,以防您提供压缩(gzip,deflate)页面 (37认同)
  • @JohnHunt:刚刚对1823字节的js文件(来自随机应用程序的随机Backbone模型)进行了快速测试.gzip的输出,如果所有的报价是相同的(无论是`'`或`"`)为809个字节.混业经营推输出高达829个字节.这可能是无关紧要的给你,但并不意味着它是不相关致所有人. (7认同)
  • 我建议虽然单身超过双倍 - 为什么在一个人可以完成这项工作时使用两个. (3认同)
  • 如果有人说“哦,潜力太低,可能与一百件可能无关的东西不相关”,那么一千针就死了。在合理的努力下,您可以节省的一切都值得拯救IMO。 (3认同)
  • @Aito,用于SGML。对于HTML,并非所有属性值都需要定界 (2认同)
  • @Pacerier,你是对的.有关您的评论的更多信息,请访问http://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language#HTML (2认同)
  • 我会尽量使用单引号,因为只需要按一次键就可以输入,而双引号则需要压下shift键。 (2认同)
  • @cherouvim压缩率更高?我们说的是1字节..也许2?大声笑.我不认为这是相关的. (2认同)
  • +1 用于测试,但是即使在*非常* 慢的 GPRS 连接上 20 个字节也将花费 < 1 毫秒。这一点都不明显。任何从事这种优化级别的人都不应该使用 HTML 或基于 SGML 的标记。 (2认同)
  • 事实上,2016 年几乎任何区域的 20 字节都是相当无关紧要的。33 年前,ZX80 上的 20 个字节是相当无关紧要的。 (2认同)
  • @johnhunt 声明 20 字节不相关是一个错误的假设。减少 1-2% 的带宽费用可能会对某些公司的利润产生重大影响。 (2认同)
  • @Jacob最多想想0.0001%.在现实世界中,除非人们使用莫尔斯电码用手电筒传输数据,否则这种差异并不值得任何人考虑.20个字节是160位.为了正确看待这一点,1962年,Bell 103或V.21调制解调器可以在大约半秒内传输.1991年的14.4k调制解调器需要90秒.今天,在网上?这是无关紧要的.期.集成的专业北极或空间通信的东西,也许不是.网络,是的,无关紧要. (2认同)
  • @John 拜托,你有点太轻率了。是的,20 字节并不是很多,但测试是在一个 1823 字节的*单个*文件上进行的。显然,网页读取的文件远不止一个文件。目前,该页面超过 219777 字节。2% 将节省近 5000 字节。这仍然无关紧要吗?如果确保一致性很乏味,我可以看到你的论点。但是,搜索和替换或者只是从一开始就保持一致......没有太多努力来获得*一些*收益。因此,这是一种“不劳而获”的情况(更好的压缩以与引号字符保持一致。) (2认同)
  • 累积的收益微不足道,这就是浪费时间。选择一个:调整你的缓存策略,粉碎 PNG,不要将 JQuery 仅仅捆绑到查询选择器......有很多方法,所以可以节省更多;谁会走过摇钱树弯腰捡起硬币? (2认同)

Nib*_*Pig 66

"用作顶级和'第二层,正如我想象的那样大多数人都这样做.例如

<a href="#" onclick="alert('Clicked!');">Click Me!</a>
Run Code Online (Sandbox Code Playgroud)

在那个例子中,你必须使用两者,这是不可避免的.

  • 我也这样做,但如果你避免在html中内联javascript,就可以避免这种情况. (36认同)
  • 还有其他非内联javascript情况,可能需要单引号,例如使用自定义`data-*`属性时.根据您的应用程序以及如何使用`data-*`属性,您可能需要在```中使用```.有时我们将它们用于Google Analytics事件跟踪:`<a href =". .."data-track ="主页横幅|点击| Dick's Sporting Goods">点击我</a> (4认同)
  • 可以像这样轻松避免:<a onclick="alert(\"Clicked!\")">.但是,这种可读性要低得多. (4认同)
  • 考虑`var x ="<a href='" + url +"'>点击我</a>";` (3认同)
  • 我不完全确定SGML和HTML5是否正式支持. (2认同)
  • 我也一样,最初的例子只是为了演示何时必须这样做。我使用的另一个例子显示了没有内联 JavaScript 的问题。 (2认同)

Dus*_*ant 25

引用Web开发人员的约定

简答

在HTML中,单引号(')和双引号(")的使用是可以互换的,没有区别.

但建议使用一致性,因此我们必须选择语法约定并定期使用它.

答案很长

Web开发通常由许多编程语言组成.HTML,JS,CSS,PHP,ASP,RoR,Python等.因此,我们为不同的编程语言提供了许多语法约定.通常来自一种语言的习惯将跟随我们使用其他语言,即使它不被认为是"正确的"即评论惯例.引用约定对我来说也属于这一类.

但我倾向于将HTML与PHP结合使用.在PHP中,单引号和双引号之间存在重大差异.在带双引号的PHP中,"您可以直接在字符串的文本中插入变量".(scriptingok.com)当使用单引号时"文本显示为原样".(scriptingok.com)

PHP处理双引号字符串需要更长的时间.由于PHP解析器必须提前读取整个字符串以检测其中的任何变量并将其连接起来 - 因此处理时间比单个引用字符串要长.(scriptingok.com)

 

单引号在服务器上更容易.由于PHP不需要提前读取整个字符串,因此服务器可以更快,更快乐地工作.(scriptingok.com)

其他需要考虑的事情

  1. 字符串中双引号的频率.我发现我需要在字符串中使用双引号("),而不是在字符串中使用单引号(').为了减少所需的字符转义次数,我赞成单引号分隔符.
  2. 单引号更容易.这是相当自我解释但澄清,为什么按SHIFT键更多次,然后你必须.

我的公约

通过对PHP的这种理解,我已经设置了约定(对我自己和我公司的其余部分),默认情况下,字符串将被表示为单引号,用于服务器优化.如果需要引号(例如属性中的JavaScript),则在字符串中使用双引号,例如:

<button onClick='func("param");'>Press Me</button>

当然,如果我们使用PHP并希望解析器处理字符串中的PHP变量,我们应该有意使用双引号. $a='Awesome'; $b = "Not $a";

来源

单引号与PHP中的双引号.(ND).检索2014年11月26日,来自http://www.scriptingok.com/tutorial/Single-quotes-vs-double-quotes-in-PHP

  • 在您回答这个问题之前,PHP中的单引号与双引号性能差异已知为零:https://nikic.github.io/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth. HTML (3认同)
  • @DustinPoissant 啥??在哪个浏览器上?? (2认同)

小智 13

如果它完全相同,也许使用单引号更好,因为它不需要按住shift键.击键次数减少= RSI的几率降低.

  • 好吧,至少在Galactic Common布局上.(安静) (2认同)
  • RSI 的风险和击键次数与编码标准有什么关系? (2认同)

Dav*_*mas 11

在HTML中我不相信你是否使用"',但它应该在整个文档中一致地使用.

我自己的用法更喜欢使用属性/ html ",而所有的javascript都使用'.

这使我更容易阅读和检查.如果您的使用对我来说比我的更有意义,则无需进行更改.但是,对我来说,你的代码会感到凌乱.这是个人的全部.

  • 什么对你有用是好的; 保持一致并不意味着"总是做X"它只是意味着'在情况X中这样做',一致性可以是上下文感知; 并且最好这样使用. (3认同)
  • 我经常使用```的属性,但有时我在PHP代码中编写代码,我更喜欢`echo`使用```以便进行解析.如果使用`'`,这个echo中的任何html属性都更具可读性.当然它不一致,但没有所有的反斜杠就容易多了. (2认同)

Stu*_*art 9

实际上,最好的方式是谷歌推荐的方式.双引号:https: //google.github.io/styleguide/htmlcssguide.xml?showow = HTML_Quotation_Marks#HTML_Quotation_Marks

请参阅https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Validity#HTML_Validity 来自Google的引用建议:"使用有效的HTML是一种可衡量的基线质量属性,有助于了解技术要求和约束,并确保适当的HTML使用."

  • 但为什么!?为什么`````````! (2认同)
  • @San一致性,主要是.它遵循美国英语标准,双引号用于引号,单引号用于子引号. (2认同)

Ala*_*ong 5

对HTML使用双引号

<div class="colorFont"></div>
Run Code Online (Sandbox Code Playgroud)

对JavaScript使用单引号

$('#container').addClass('colorFont');
$('<div class="colorFont2></div>');
Run Code Online (Sandbox Code Playgroud)


Ran*_*ang 5

我知道很多人不会同意,但这就是我所做的,而且我真的很喜欢这种编码风格:实际上,除非绝对必要,否则我不会在HTML中使用任何引号。

例:

<form method=post action=#>
<fieldset>
<legend>Register here: </legend>
  <label for=account>Account: </label>
  <input id=account type=text name=account required><br>
  <label for=password>Password: </label>
  <input id=password type=password name=password required><br>
...
Run Code Online (Sandbox Code Playgroud)

仅当属性值中有空格或其他内容时才使用双引号:

<form class="val1 val2 val3" method=post action=#>
  ...
</form>
Run Code Online (Sandbox Code Playgroud)

  • 不,我不了解任何宗教。我使用HTML已经有一段时间了,之前从未见过使用过的样式...因此我问。 (5认同)
  • 不带引号的HTML看起来更干净(文件大小略小)。那是唯一的原因,仅此而已。此外,我真的看不到要求** every **属性具有引号的意义。为什么不能只省却麻烦呢?甚至w3.org也接受未加引号的属性值(http://www.w3.org/TR/html-markup/syntax.html#syntax-attr-unquoted)。**简单胜于复杂。**带引号是某种宗教吗? (3认同)
  • 此外,HTML 压缩器也会删除不必要的引号。 (2认同)
  • 在属性值周围省略引号的问题在于,不同的标准具有需要引用的不同字符列表。例如,HTML4表示仅包含字母,数字,破折号和点的值可以不加引号,但HTML5表示除空格和“'`&lt;=&gt;之外的所有内容,因此要小心,尤其是对于较旧的浏览器! (2认同)