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

之类的……

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

当前回答

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

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

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

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

其他回答

ECMAScript 6引入了模板字符串:

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

例如:

alert(`Please Select file   
to delete`);

警告:

Please Select file   
to delete

我尝试了上面的一些建议,但在Chrome代码检查器中得到了一个非法字符警告。下面的方法对我来说是有效的(不过只在Chrome中测试过!)

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

就像…

stuff on line 1
stuff on line 2

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

把反斜杠放在行末:

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

我必须指出,这不是ECMAScript字符串的一部分,因为行结束字符是不允许的:

'LineTerminator'字符不能出现在字符串文本中,即使前面有反斜杠\。使行结束符成为字符串字面值字符串值的一部分的正确方法是使用转义序列,例如\n或\u000A。

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


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

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

对于VSCode用户来说,这是一个很好的解决方案,如果字符串分解成多行导致问题(当我不得不测试一个很长的JWT令牌时,我就遇到过这个问题,不知为何使用模板字面量没有做到这一点)。

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

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

这将显示警报

Please select file 
to delete.