我覺得你的問題不能有只有一個正確答案。在JavaScript中編寫長字符串的方法有很多,主要是您選擇的品味。我只能在這裏描述我對這個問題的觀點。
首先,您可以使用JSlint的maxlen
選項將默認行長度更改爲您喜歡的任何值。例如
/*jslint maxlen: 130 */
但我想你已經知道設置了。
我想你可以使用一些JavaScript代碼的Minifiers來有效地使用你的JavaScript(如Closure Compiler,Microsoft Ajax Minifier或其他)。如何你可以很容易在the page驗證碼
// ==ClosureCompiler==
// @compilation_level SIMPLE_OPTIMIZATIONS
// @output_file_name default.js
// ==/ClosureCompiler==
// ADD YOUR CODE HERE
function hello(name) {
var test = '<div>' +
'<h1>Foo</h1>' +
'<p>Lorem ipsum</p>' +
'</div>';
return test + name;
}
hello('New user');
將精縮到
function hello(a){return"<div><h1>Foo</h1><p>Lorem ipsum</p></div>"+a}hello("New user");
,所有的字符串常量會被連接在一起。所以你可以用大的字符串常量來格式化代碼,這樣的代碼可以更好地讀取。縮小器將爲您完成剩下的工作。
在長URL的情況下,你可以在任何你從邏輯角度看最好的地方打破長字符串(我認爲它總是會在一些'/'
字符)。在大多數實際情況下,您將會追加一些baseURL
。所以,你可以在你的文件開頭的某處定義通用的項目設置,或在單獨的JavaScript文件
var baseLoremUrl = 'http://example.com/foo/bar/baz/fizz/buzz/lorem/';
,後來用它作爲
'<a href="' + baseLoremUrl + 'ipsum/etc/' + '">Click me!</a>'
如果您有應被追加到URL參數像
'http://example.com/foo/bar/baz/fizz/buzz/lorem?x=123&y=ABC'
我總是使用
baseLoremUrl + '?' + $.params({x: 123, y: 'ABC'})
以使代碼更易於從一側讀取,並且確保所有參數在需要時都將根據encodeURIComponent進行正確編碼。
以上所有規則都是我在編寫JavaScript代碼時嘗試遵循的規則。
'但是我不認爲這是有道理的,URLs'而且爲什麼? – 2012-03-06 12:01:42
@LightnessRacesinOrbit,因爲將字符串拆分爲多行不會使得代碼100%更具可讀性/更安全。 – zzzzBov 2012-03-06 14:49:01
沒有什麼能100%的時間做任何事情。爲正確的場景使用正確的工具。 – 2012-03-06 14:56:53