我正在通过命令行(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,但是如果没有其他解决方法,它可能有助于提高可读性。

08-26 11:43