为什么单引号字符串优于双引号字符串?在js
why "Single-quoted string preferred over double-quoted string." in js?
在使用gjslint时,我得到了一个提示:"单引号字符串优先于双引号字符串"。
为什么?我对这个有点困惑。为什么首选单引号?
希望得到一些帮助。谢谢所有。
这只是别人的看法。
很多人喜欢单引号,但也有很多人喜欢双引号。我倾向于使用双引号只是出于其他语言的习惯,但我没有强烈的偏好:如果我听到一个令人信服的理由说明单引号更好,我愿意改变,但到目前为止,我甚至没有听到一个好的理由,更不用说一个令人信服的理由了。
甚至连Google JavaScript风格指南都说单引号是首选,但没有给出一个很好的理由:
"为了一致性起见,首选单引号(')而不是双引号(")。这在创建包含HTML"
的字符串时非常有用。
(然后给出一个非常短的字符串示例,甚至不包括HTML)
许多人似乎认为XHTML只对双引号有效,但事实并非如此:XHTML规范允许这两种情况。(话虽如此,我遇到的98%的XML,包括XHTML, 确实使用双引号。)
在任何一个源文件中,我尝试坚持其中一个,但如果中间的一行代码需要许多嵌入引号,我很乐意只更改该行,以避免该行中的大量转义。
UPDATE:请记住JSON只对双引号有效。显然JSON不是JavaScript,但这也是为什么(a)有些人可能更喜欢在JavaScript中使用双引号,这样对象字面量看起来就像JSON; (b)有些人可能更喜欢使用单引号,这样他们就可以手动编码JSON,而不必转义双引号。(不,我不建议手动编码JSON,但我见过这样做。)
如果使用单引号,则不必转义html中的双引号。
例如…可以使用单引号
var a = '<a href="something.html" rel="yes" title="whatever">a link/a>';
需要转义,就像这样
var a = "<a href='"something.html'" rel='"yes'" title='"whatever'">a link/a>";
更多的工作,更难以维护,更容易犯错误。
我的键盘有一个'/'键,所以我可以很容易地输入单引号,但需要按shift键来输入双引号。:)
至于JSLint警告,它只是试图强制一个任意的标准,以促进更一致的编码风格,就像它在其他空格和缩进问题上所做的那样。
在性能方面,根据http://jsperf.com,您在某些浏览器中获得几乎相同的性能,在其他浏览器中获得相同的性能。
在jsperf中有很多测试,所有的测试都得到几乎相同的结果:
- http://jsperf.com/double-or-simple-quote
- http://jsperf.com/quotes-compare
- http://jsperf.com/jquery-double-vs-single-quotes
- http://jsperf.com/search?q=quote
总之,我认为使用单引号或双引号只是品位问题,而不是性能问题。
问候。
- 使用递归、Ramda.js和无点样式重构字符串的getPermutations()
- 如何在JS文件中获取资源(.resx)字符串
- 用有限的字符集压缩字符串,然后在JS中解压缩
- node.js将字符串转换为要上传到Web服务器的文件
- 在 JS 中添加字符串之前强制换行
- 从JS中的字符串中读取数字的库
- 将字符串转换为JS对象
- Js char数组将字符串整数视为整数
- 闭包js框架-将ArrayBuffer转换为字符串
- 从字符串JS的末尾提取子字符串
- 替换除匹配字符串JS Regex之外的所有内容
- 在我的情况下,lastindexof和子字符串js混淆
- 如何把空格后的数字在字符串js
- 删除字符串JS最后一个字母之后的所有字符
- 如何删除重复字符形式字符串?- JS
- 字符串.JS格式
- 是否有php字符串/JS警告框的最大行数?
- 清理可搜索的字符串JS
- 忽略字符串- JS - Regex的第一个字符
- 从字符串 JS/jQuery 中删除 HTML 标记