在Javascript字符串中奇怪地使用反斜杠

在Javascript字符串中奇怪地使用反斜杠,javascript,jquery,multiline,Javascript,Jquery,Multiline,我的一位同事在设置JS对象中属性的字符串值时使用了反斜杠: shareButtonsHtml : '\ <span class="share-fb">\ <a href="#" class="fb-share"><span class="fb-share-icon"></span>Share</a>\ <span class="fb-share-count"><i><

我的一位同事在设置JS对象中属性的字符串值时使用了反斜杠:

shareButtonsHtml : '\
    <span class="share-fb">\
        <a href="#" class="fb-share"><span class="fb-share-icon"></span>Share</a>\
        <span class="fb-share-count"><i></i><u></u>0</span>\
    </span>\
    <div class="share-twitter"> \
        <iframe class="share-twitter-iframe" \
                allowtransparency="true" frameborder="0" scrolling="no" \
                src="https://platform.twitter.com/widgets/tweet_button.html" \
                style="width:130px; height:20px;"></iframe> \
    </div> \
    <div class="share-google"> \
        <div class="g-plusone" data-size="small" data-annotation="none"></div> \
    </div>',

我知道反斜杠是JS中的转义字符。有人能解释一下我的同事为什么在这里使用它们吗?他肯定不需要逃过马车的回程或断线?他后来转到另一家公司,所以我不能问他

他在逃避换行符

如果需要多行字符串,这是必需的,否则JS不会将下一行识别为字符串的一部分

所以,是的,他确实“需要逃离马车返回或线路中断”。那正是他在那里做的

您可以使用字符串连接将字符串分散到多行上,但这意味着每次使用字符串时都要进行额外的操作。性能差异不是很显著,主要是偏好的问题

多行Sting在JS中不正常工作的原因是解释器(在大多数情况下*)添加了一个
到代码行的末尾,如果它还没有。这就是为什么
是可选的,但它也会打断多行字符串

*例外情况是对象/数组文本,
,例如:

var obj = {
    a:1
}

反斜杠用于转义此处的换行符。例如,它也可以在命令行中使用

David Walsh写了一篇关于多行javascript字符串的优秀文章:

看起来您的同事实际上使用的是“慢而丑陋”方法之上的首选方法,即使用加号(+)连接字符串

从博客:

在每行末尾添加反斜杠会告诉JavaScript引擎字符串将继续到下一行,从而避免自动插入分号的麻烦


这只允许他在多行上定义字符串(
\
正在转义“新行”字符)。

看起来他/她是在做
`而不是关闭字符串
`然后使用
+
连接开始新行。是的,它确实逃过了下面的断线。谢谢大家的精彩回答!干杯,罗宾,我只能选择一个答案,但给了你一个提速。
var obj = {
    a:1
}