Search code examples
javascriptstringquotes

javascript string difference


Possible Duplicates:
single quotes versus double quotes in js
When to Use Double or Single Quotes in JavaScript

What is the difference (if any) between the javascript strings defined below?

var str1 = "Somestring";

var str2 = 'Somestring';

"" and '' mean two very different things to me predominantly writing code in C++ :-)

EDIT: If there is no difference why are there two ways of achieving the same thing and which is considered better practice to use and why. Thanks!


Solution

  • Javascript treats single and double quotes as string delimiters.

    If you use single quotes, you can use double quotes inside the string without escaping them.

    If you use double quotes, you can use single quotes inside the string without escaping them.

    Both examples evaluate to the same thing.

    alert(str1 == str2); // true
    alert(str1 === str2); // true
    

    Why two ways? Due to the way javascript allows you to mix the two, you can write html attributes out without messy escapes:

    var htmlString1 = "<a href='#'>link</a>";
    var htmlString2 = '<a href="#">link</a>';
    

    As for best practice, there is no convention. Use what feels best.

    Personally, I like making sure the Javascript I emit matches the HTML (if I double quote attributes, I will delimit JS string with a ', so emitted attributes will use ").