What is the difference between ' and " in JavaScript?

后端 未结 8 2338
鱼传尺愫
鱼传尺愫 2020-12-01 06:13

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

相关标签:
8条回答
  • 2020-12-01 06:27

    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.

    0 讨论(0)
  • 2020-12-01 06:28

    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.

    0 讨论(0)
  • 2020-12-01 06:40

    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.

    0 讨论(0)
  • 2020-12-01 06:41

    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");
    
    0 讨论(0)
  • 2020-12-01 06:46

    Try this:

    console.log("mama+"mama"")
    
    Output : Uncaught SyntaxError: missing ) 
    after argument list
    

    Now try:

    console.log('mama+"mama"')
    
    Output :  mama+"mama"
    
    0 讨论(0)
  • 2020-12-01 06:47

    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.

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