【问题标题】:What is the difference between ' and " in JavaScript?JavaScript 中的 ' 和 " 有什么区别?
【发布时间】:2009-06-03 10:40:23
【问题描述】:

我看到了this question,我想知道 JavaScript 中的相同内容。

如果在 JavaScript 中制作字符串时使用字符 ' 或字符 ",应用程序的行为似乎相同。那么这两个字符有什么区别?

我看到使用 ' 构建字符串的唯一优势是我可以执行以下操作:

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

代替:

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

我应该注意它们之间的任何显着差异吗?

【问题讨论】:

    标签: javascript string


    【解决方案1】:

    它们在所有意图和目的上都是等效的。如您所述,如果您想在字符串中使用其中一个,最好使用另一个来创建字符串。除此之外,都一样。

    【讨论】:

      【解决方案2】:

      虽然在 Javascript 中技术上没有区别,但值得注意的是,单引号字符串本身是 not valid JSON。我认为人们会自动假设,既然 JSON 是有效的 JS,那么有效的 JS 字符串也是有效的 JSON,which isn't necessarily true

      例如,{'key': 'Some "value"'} 不是有效的 JSON,而 {"key": "Some 'value'"} 是。

      【讨论】:

        【解决方案3】:

        没有区别。它存在的原因正是你所说的

        【讨论】:

          【解决方案4】:

          根据 Mozilla 的说法,好的做法是在 HTML 中使用“”(不能使用“”),而在 Javascript 中保留“”(“”和“”都可以无差别地使用)...

          【讨论】:

          【解决方案5】:

          我认为还有另一个区别。如果您执行以下操作

          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"));
          

          对于 str1 和 str4,document.write 将失败。这就是区别,但我不知道是否有解决方法可以使它们起作用。

          【讨论】:

          • 那些 document.writes 在哪个浏览器中失败了?我没能让他们失败。 (一旦我在该代码中放入了足够多的右括号)
          【解决方案6】:

          试试这个:

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

          现在试试:

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

          【讨论】:

            【解决方案7】:

            如上所述,没有区别,但对于需要在字符串中使用“/”的情况。

            对于需要将字符串与变量连接起来的情况,我认为更好的做法是使用模板字符串: Price: ${price}, Amount: ${amount}. Total: ${price*amount}

            这样你就可以添加 " 和 ',并连接变量。

            更容易阅读,更容易编写。

            【讨论】:

              【解决方案8】:

              警告!!!!

              有区别。添加到数组时,您必须使用其中一个。当您使用两种不同类型的引号时,数组会变得混乱。

              例子:

              //WILL NOT WORK
              var array = ["apple","orange","banana"];
              
              array.push('pear');
              
              //WILL WORK
              var array = ["apple","orange","banana"];
              
              array.push("pear");
              

              【讨论】:

              • 你能详细解释一下吗?这不符合我的经验,也不符合我刚刚所做的测试。
              猜你喜欢
              • 2011-11-10
              • 2011-06-28
              • 2010-09-19
              • 2010-10-29
              • 2010-09-13
              • 1970-01-01
              • 2023-03-07
              • 2011-12-29
              相关资源
              最近更新 更多