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

前端 未结 4 2342
不知归路
不知归路 2021-02-19 01:22

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?

相关标签:
4条回答
  • 2021-02-19 01:34

    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.)

    0 讨论(0)
  • 2021-02-19 01:35

    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.

    0 讨论(0)
  • 2021-02-19 01:51

    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.

    0 讨论(0)
  • 2021-02-19 01:52

    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.

    0 讨论(0)
提交回复
热议问题