如何在JavaScript的多行代码中中断字符串?

2020/10/16 21:41 · javascript ·  · 0评论

JavaScript中是否有一个字符可以破坏一行代码,以便即使换行也可以将其读取为连续的?

就像是....

1.警报(“请选择文件   
2. \删除“);

在您的示例中,您可以将字符串分成两部分:

alert ( "Please Select file"
 + " to delete");

或者,当是字符串时(如您的情况),可以按@Gumbo的建议使用反斜杠

alert ( "Please Select file\
 to delete");

请注意,这种反斜杠方法不一定是首选方法,并且可能不受普遍支持(我很难找到关于此的硬数据)。这是不是ECMA 5.1规范

当使用其他代码(不在引号中)时,换行符将被忽略并且完全可以接受。例如:

if(SuperLongConditionWhyIsThisSoLong
  && SuperLongConditionOnAnotherLine
  && SuperLongConditionOnThirdLineSheesh)
{
    // launch_missiles();
}

将反斜杠放在行尾:

alert("Please Select file\
 to delete");

编辑    我必须注意,这不是ECMAScript字符串的一部分,因为根本不允许使用行终止符

LineTerminator ”字符不能出现在字符串文字中,即使前面加上反斜杠也是如此\使行终止符成为字符串文字的字符串值一部分的正确方法是使用转义序列,例如\n\u000A

因此,使用字符串串联是更好的选择。


    2015年1月5日更新ECMAScript5中的字符串文字允许上述语法:

行终止符不能出现在字符串文字中,除非作为LineContinuation的一部分来产生空字符序列。使行终止符成为字符串文字的String值一部分的正确方法是使用转义序列,例如\n\u000A

ECMAScript 6引入了模板字符串

模板字符串是允许嵌入表达式的字符串文字。您可以使用多行字符串和字符串插值功能。

例如:

alert(`Please Select file   
to delete`);

将提醒:

Please Select file   
to delete

将琴弦分成两段 

alert ("Please select file " +
       "to delete");

有趣的是。尝试过:

alert("Some \
    string \
    wrapped \
    across \
    mutliples lines.")

这行得通。但是,偶然!,最后的反斜杠后面有一个空格字符(所有其他反斜杠都位于行的末尾)。这会导致JavaScript错误!但是,删除此空间可修复错误。

这在使用Cordova的Android ADT中。

你可以用

1:  alert("Please select file" +
2:        " to delete");

那应该工作

您可以将长字符串常量分解为逻辑块,然后将它们分配给数组。然后join使用一个空字符串作为定界符。

var stringArray = [
  '1. This is first part....',
  '2. This is second part.....',
  '3. Finishing here.'
];

var bigLongString = stringArray.join('');
console.log(bigLongString);

输出将是:

  1. 这是第一部分.... 2。这是第二部分。....3。在这里完成。

这种方法对性能的影响很小,但是您获得了代码的可读性和可维护性。

对于VSCode用户而言一个很好的解决方案,如果将字符串分解成多行会导致问题(当我不得不测试一个较长的JWT令牌时遇到了这个问题,而使用模板文字以某种方式无法解决问题。)

反斜杠运算符不可靠。尝试将此功能粘贴到浏览器控制台中:

function printString (){
  const s = "someLongLineOfText\
  ThatShouldNotBeBroken";
  console.log(s);
}

然后运行它。由于函数中的常规(正确的)缩进,将包含两个额外的空格,从而导致someLongLineOfText ThatShouldNotBeBroken

在这种情况下,即使使用反引号也无济于事。始终使用串联“ +”运算符来防止此类问题。

我尝试了许多上述建议,但在Chrome代码检查器中收到了非法字符警告。以下对我有用(不过仅在Chrome中测试!)

alert('stuff on line 1\\nstuff on line 2);

出来像...

stuff on line 1
stuff on line 2

注意双反斜杠!! ...这似乎很重要!

无需任何手动中断代码。只需在要中断的位置添加\ n即可。

alert ("Please Select file \n to delete");

这将显示警报

Please select file 
to delete.
本文地址:http://javascript.askforanswer.com/ruhezaijavascriptdeduoxingdaimazhongzhongduanzifuchuan.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!