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

之类的……

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

当前回答

你可以用

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

应该可以

其他回答

有趣的是。尝试:

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

这个方法奏效了。然而,意外!,在最后的反斜杠后面有一个空格字符(所有其他的反斜杠都在行尾)。这导致了javascript错误!不过,删除这个空格可以修复这个错误。

这是在ADT为Android使用Cordova。

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

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。

所以使用字符串连接是更好的选择。


ECMAScript5中的字符串字面量允许上述语法:

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

ECMAScript 6引入了模板字符串:

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

例如:

alert(`Please Select file   
to delete`);

警告:

Please Select file   
to delete

你可以用

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

应该可以