在JavaScript中是否有一个字符来分解代码行,以便尽管它在新的行上,它仍然被视为连续的?

之类的……

1. alert ( "Please Select file   
2. \ to delete" );

当前回答

ECMAScript 6引入了模板字符串:

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

例如:

alert(`Please Select file   
to delete`);

警告:

Please Select file   
to delete

其他回答

你可以用

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

应该可以

不需要任何手动中断代码。 只要在你想中断的地方加上\n。

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

这将显示警报

Please select file 
to delete.

反斜杠操作符不可靠。尝试将这个函数粘贴到浏览器控制台:

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

然后运行它。由于函数内的常规(正确)缩进,将包括两个额外的空格,导致一些elonglineoftext ThatShouldNotBeBroken。

在这种情况下,即使使用反引号也无济于事。总是使用连接“+”操作符来防止这种类型的问题。

在你的例子中,你可以把字符串分成两部分:

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

或者,当它是一个字符串,就像在你的情况下,你可以使用@Gumbo建议的反斜杠:

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

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

当处理其他代码(不加引号)时,换行符将被忽略,这是完全可以接受的。例如:

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

您可以将长字符串常量分解为逻辑块并将它们分配到数组中。然后使用空字符串作为分隔符进行连接。

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

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

输出将是:

这是第一部分....。这是第二部分.....3。完成。

这种方式对性能有轻微的影响,但在代码可读性和可维护性方面有所收获。