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 app
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.
Although not technically a difference in Javascript, its worth noting that single quoted strings are not valid JSON, per se. I think that people automatically assume that since JSON is valid JS, that valid JS strings are also valid JSON, which isn't necessarily true.
E.g., {'key': 'Some "value"'}
is not valid JSON, whereas {"key": "Some 'value'"}
is.
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.
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");
Try this:
console.log("mama+"mama"")
Output : Uncaught SyntaxError: missing )
after argument list
Now try:
console.log('mama+"mama"')
Output : mama+"mama"
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.