带字符串的行的行长度

时间:2011-12-04 22:23:57

标签: javascript

最近在Javascript中痴迷于整洁,我很好奇是否有一些关于如何处理由于字符串长度超过80列的行的常见做法。使用innerHTML我可以使用反斜杠标记换行符,并且缩进空格不会显示在元素的内容中,但这似乎并不适用于例如。 console.log()

是否有任何约定,或者我应该学会使用超过80列的行? :)

1 个答案:

答案 0 :(得分:3)

没有普遍的惯例。使用现代高分辨率显示器,您可以轻松容纳160列,并且仍然可以使用IDE工具栏而无需滚动,因此我不会担心会粘到80列。

有些人不遗余力地从不让任何代码行超过 n 列,其中 n 可能是80,或160,或其他任意数字基于什么适合他们喜欢的字体和屏幕分辨率。我工作的一些人并不关心,并且无论是由长字符串还是由具有大量参数或其他功能的函数组成的线条都会向右移动。

我尽量避免任何水平滚动,但我并不痴迷于此,所以如果我有一个特别长的字符串常量,我可能会把它全部放在一行上。如果我有一个通过连接常量和变量构建的字符串,我将它分成几行,因为该语句已经有几个+运算符,它们是添加换行符的自然位置。如果我有一个包含大量参数的函数,而不是不滚动的函数,我会将每个参数放在换行符上。对于有很多条件的if语句,我可能会在几行中打破它。

关于你提到的关于innerHTMLconsole.log()的内容:如果你通过包含反斜杠和换行符在源代码中的行之间打破一个字符串常量,那么你放在第二行的任何缩进空格将变为字符串的一部分:

var myString1 = "This has been broken\
                 into two lines.";
// equivalent to
var myString2 = "This has been broken                 into two lines.";
// NOT equivalent to
var myString3 = "This has been broken\
into two lines.";

如果对innerHTML使用该字符串,则空格将被视为与HTML源中的空格相同,即浏览器将使用压缩到单个空格的多个空格显示空格。但是对于包含console.log()的代码中字符串的任何其他用途,空格字符都将包含在内。

如果水平滚动真的困扰你并且你有一个长字符串,则以下方法允许你在字符串中没有多余的空格进行缩进:

var myString3 = "Hi there, this has been broken"
              + " into several lines by concatenating"
              + " a number of shorter strings.";