What is the difference between ' and " in JavaScript?

Viewed 55643

I saw this question and I am wondering about the same thing in JavaScript.

If you use the character ' or the character " when making strings in JavaScript, the application seems to behave the same. So what is the difference between these two characters?

The only advantage I have seen in using ' to build strings is that I can do stuff like:

var toAppend = '<div id="myDiv1"></div>';

Instead of:

var toAppend = "<div id=\"myDiv1\"></div>";

Is there any significant difference between them that I should be aware of?

8 Answers

They are equivalent for all intents and purposes. If you want to use either one inside a string, it is a good idea to use the other one to create the string, as you noted. Other than that, it's all the same.

There's no difference. The reason for its existence is exactly what you mentioned

I think there is another difference. If you do the following

var str1 = 'The \' character';
var str2 = 'The " character';
var str3 = "The ' character";
var str4 = "The \" character";
document.write(str1.replace("'", "%26"));
document.write(str2.replace('"', "%22"));
document.write(str3.replace("'", "%26"));
document.write(str4.replace('"', "%22"));

The document.write will fail for str1 and str4. That is the difference, but I don't know if there is a workaround to make them work.

Try this:

console.log("mama+"mama"")

Output : Uncaught SyntaxError: missing ) 
after argument list

Now try:

console.log('mama+"mama"')

Output :  mama+"mama"

They are equivalent! but sometimes you want to use "" inside a string, and that why we have '

As written above, there is no difference but for situation you need to use "/' inside a string.

I think a better practice for situation you need to concatenate strings with variables is using a template strings: Price: ${price}, Amount: ${amount}. Total: ${price*amount}

That's way you can add " and ', and concatenate variables.

Much easier to read, much easier to write.

WARNING!!!!

There is a difference. When adding to arrays, you have to use one or the other. The array gets confused when you use two different types of quotes.

Example:

//WILL NOT WORK
var array = ["apple","orange","banana"];

array.push('pear');

//WILL WORK
var array = ["apple","orange","banana"];

array.push("pear");
Related