why “Single-quoted string preferred over double-quoted string.” in js?

試著忘記壹切 提交于 2020-01-01 07:45:31

问题


While using gjslint, I got a hint: "Single-quoted string preferred over double-quoted string".

So why? I'm a little confused with this. Why single-quoted preferred?

Hope to get some help. Thanks all.


回答1:


It's just somebody's opinion.

Lots of people do prefer singe-quotes, but lots of other people prefer double-quotes. I tend to use double-quotes just out of habit from other languages, but I don't have a strong preference: I'm willing to change if I hear of a compelling reason why single-quotes are better, but to date I've not even heard a good reason, let alone a compelling reason.

Even the Google JavaScript Style Guide says that single-quotes are preferred without giving a good reason:

"For consistency single-quotes (') are preferred to double-quotes ("). This is helpful when creating strings that include HTML"

(It then goes on to give a very short example of a string that doesn't even include HTML.)

A lot of people seem to believe XHTML is only valid with double-quotes, but that is not true: the XHTML spec allows either. (Having said that, 98% of the XML I've run across, including XHTML, does use double-quotes.)

Within any one source file I try to stick to one or the other, but if a line of code in the middle needed a lot of embedded quotes I'd be happy to change for just that line to avoid lots of escaping in that line.

UPDATE: Just remembered that JSON is only valid with double-quotes. Obviously JSON is not JavaScript, but still that's a reason why (a) some might prefer double-quotes in their JavaScript so that object literals look like JSON, and (b) some might prefer single-quotes so that they can manually encode JSON without having to escape the double-quotes. (No, I don't recommend manually encoding JSON, but I've seen it done.)




回答2:


If you use single quotes, you do not have to escape the double quotes in your html.

For example...

With single quotes you can do this

var a = '<a href="something.html" rel="yes" title="whatever">a link/a>';

with double quotes you would need to escape those inside double quotes, like so

var a = "<a href=\"something.html\" rel=\"yes\" title=\"whatever\">a link/a>";

Much more work, more difficult to maintain, and easier to commit errors.




回答3:


My keyboard has a '/" key so I can easily type a single quote but need to press shift for the double quote. :)

As for the JSLint warnings its just trying to enforce an arbitrary standard in order to promote a more consistent coding style, just like how it does on other spacing and indentation issues.




回答4:


In terms of performance, according with http://jsperf.com you get almost the same performance for both in some browsers, in others you get the same performance.

There's a lot of tests in jsperf and all of them get almost the same result:

  • 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

In conclusion I think using single or double quotes is just a matter of taste and not a matter of performance.

Regards.



来源:https://stackoverflow.com/questions/7618214/why-single-quoted-string-preferred-over-double-quoted-string-in-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!