Lynn
Lynn

Reputation: 675

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

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

Answers (4)

Isaac Zepeda
Isaac Zepeda

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

nnnnnn
nnnnnn

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

hugomg
hugomg

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

Jason Gennaro
Jason Gennaro

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

Related Questions