Reputation: 675
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.
Upvotes: 17
Views: 9877
Reputation: 310
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:
In conclusion I think using single or double quotes is just a matter of taste and not a matter of performance.
Regards.
Upvotes: 1
Reputation: 150080
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.)
Upvotes: 23
Reputation: 69964
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.
Upvotes: 2
Reputation: 34863
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.
Upvotes: 16