繁体   English   中英

JavaScript 中的 ' 和 " 有什么区别?

[英]What is the difference between ' and " in JavaScript?

我看到了这个问题,我想知道 JavaScript 中的同一件事。

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

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

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

代替:

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

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

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

尽管在技术上与 Javascript 没有区别,但值得注意的是,单引号字符串本身不是有效的 JSON 我认为人们会自动假设,因为 JSON 是有效的 JS,所以有效的 JS 字符串也是有效的 JSON,这不一定是真的

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

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

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

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

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 将失败。 这就是区别,但我不知道是否有解决方法可以使它们起作用。

尝试这个:

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

Output : Uncaught SyntaxError: missing ) 
after argument list

现在尝试:

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

Output :  mama+"mama"

它们是等价的! 但有时你想在字符串中使用 "",这就是为什么我们有 '

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

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

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

更容易阅读,更容易写。

警告!!!!

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

例子:

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

array.push('pear');

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

array.push("pear");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM