我正在通过命令行(http://jsbeautifier.org/)使用jsbeautifier,它除了能满足我较长的jquery链接语句之外,还可以很好地发挥作用:
$('#foo').closest('div')
.closest('input')
.val();
至:
$('#foo').closest('div').closest('input').val();
显然,这有点简单,但是有时链接会变得更长或更它的if语句,如下所示:
if ((foo === bar) &&
c > 5 &&
d != 2)
最终显示为:
if ((foo === bar) && c > 5 && d != 2)
有没有人经历过这种情况并修改了美化器,或者知道解决方法或备用解析器(我使用VIM,所以我希望不要使用aptana这样的IDE解决方案,除非可以通过命令行调用它)?还是我只需要调整代码以避免长时间的if条件(如果是这种情况,将其抽象为可读性更好的最佳方法是什么?)?
谢谢!
最佳答案
长的if条件很难读取和调试。您可以尝试以下方法:
var matchesBar = (foo === bar),
greaterThenFive = (c > 5),
notTwo = (d != 2);
if (matchesBar && greaterThenFive && notTwo) {
// Do stuff
}
如果给变量赋予有意义的名称,则可以将真实部分及其比较结果分离出来,并且
if
语句更易于阅读。它不会直接回答您的问题:jsbeautifier,但是如果没有其他解决方法,它可能有助于提高可读性。