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

标签 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></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>',

我们对这个字符串所做的唯一一件事就是在用户将鼠标悬停在它们上时填充我们的社交分享按钮容器:

self.html(obj.shareButtonsHtml);

我知道反斜杠是 JS 中的转义字符。谁能解释为什么我的同事在这里使用它们?他肯定不需要逃避回车或换行吗?他已经转到另一家公司了,所以我不能问他!

最佳答案

他正在转义换行符。

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

所以,是的,他确实“需要转义回车或换行符”。这正是他在那里所做的。

您可以使用字符串连接将字符串分布在多行中,但这意味着每次使用字符串时都需要额外的操作。性能差异不是很大,主要是偏好问题。

多行字符串在 JS 中通常不起作用的原因是解释器(在大多数情况下*)添加了 ; 到代码行的末尾,如果它不存在的话.这就是为什么 ; 是可选的,但它也会破坏多行字符串。

* 一个异常(exception)是对象/数组字面量,; 没有添加到那里,例如:

var obj = {
    a:1
}

关于javascript - 在 Javascript 字符串中奇怪地使用反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14628841/

相关文章:

jquery - 显示隐藏多个div

python - 如何将Python中的多行代码写成一行?

perl - 取消缩进多行字符串文字

javascript - 通过子子文档 id mongoose 检索子子文档

javascript - 单击 jstree 节点时打开多个窗口

javascript - PHP 在重试时终止旧脚本执行

java - 需要获取多行字符串以显示在文本框中Java

javascript - 使用 JavaScript 使链接保持事件状态并在单击时显示悬停效果

javascript - 获取与字符串值同名的变量的值

mysql - Laravel-4 本地服务器上用户的实时内容更新