辛夷坞

涧户寂无人,纷纷开且落

By - Christen

JavaScript 为阅读换行

jQuery 的链式操作很方便,但是链太长也影响阅读和演示,玉伯在知乎上回答了:
gjslint 要求 JavaScript 代码每行不超过 80 个字符?
80 列的来由,当初是因为硬件限制。现在硬件上早就摆脱了这个限制,但我觉得对于非模板语言来说,这依旧是一个很好的约束,理由如下:
1. 80 列可以让你的语句保持简单。比如没有 80 列的限制时,很容易写出很长的语句,有了这层限制,你会开始考虑把长句化成短句,代码逻辑会更清晰简单。
2. 80 列可以让嵌套层级减少。在异步横行的 JS 代码里,很容易写出回调套回调的代码。有了这层限制,能让你去思考如何不嵌套那么多,如何用更简单的方式去实现。

80 列是一个魔咒,这个魔咒让你不会轻易放肆自己,让你追求卓越。
与 80 列相关的另一个话题是,4 空格和 2 空格,目前 NodeJS 等社区,比较推崇 2 空格+80 列限制的风格。我个人的实践经验,感觉这两个约定非常适合自己,能让自己不会写出很复杂的代码,以及很啰嗦的注释。比如 SeaJS 的代码里,都遵守了这个规则。
如果是习惯 4 空格,建议将 80 列放宽到 120 列。
上面所有言论,仅针对 JS 语言。对于 HTML,因为其特殊性,无视 80 列限制就好。类似的,如果某段 JS 代码里有 HTML 片段,也不用严格遵守。
示例:

$('ul.first').find('.foo').css('background-color', 'red').end().find('.bar').css('background-color', 'green');

换行:

$('ul.first').find('.foo')
             .css('background-color', 'red').end()
             .find('.bar')
             .css('background-color', 'green');

在线演示:这里

Leave a Reply

Your email address will not be published.
*
*