我觉得你的问题不能有只有一个正确答案。在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