2011-12-04 48 views
0

最近我對Javascript的整潔性非常着迷,我很好奇是否有一種關於如何處理由於字符串長度而跨越80個列的行的常見做法。使用innerHTML我可以使用反斜槓標記換行符,並且縮進空格不會顯示在元素的內容中,但似乎不適用於例如。 console.log()帶有字符串的行的行長

這是否有任何約定,或者我應該學習使用長度超過80列的線? :)

回答

3

沒有通用的約定。使用現代高分辨率顯示器,您可以輕鬆安裝160個色譜柱,而且無需滾動,仍然可以獲得IDE工具欄的空間,所以我不會擔心粘附到80列。

有些人走出去的方式,以從未有任何一行代碼晃過ñ列,其中ñ可能會根據他們的首選字體和最適合自己的是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."; 
+0

+1優秀響應 – Homer6

+0

感謝您的回覆優良,多不勝感激! – fredrikekelund

相關問題