正确的写/ do和while的方法是什么?

时间:2013-05-27 15:42:20

标签: javascript

var bookmark_iterator = page_element.firstChild;
do {

    // start insertion

    if (bookmark_iterator === null) {
        page_element.appendChild(div_el);
        break;
    }

    // middle insertion

    if (div_el.id < bookmark_iterator.id) {
        page_element.insertBefore(div_el, bookmark_iterator);
        break;
    }

    // end insertion

    if (bookmark_iterator === page_element.lastChild) {

        // if null will insert at the end per reference

        bookmark_iterator = null;
        page_element.insertBefore(div_el, bookmark_iterator);
        break;
    }

    // increment loop

    bookmark_iterator = bookmark_iterator.nextSibling;
} while (bookmark_iterator !== null);

问题是http://jslint.com会抛出错误:

line 643 character 19
Unexpected 'else' after disruption.

因为我在if / else结构中有一个break语句。

这让我觉得我做了一个简单的字母插页太复杂了。是否有更简单或更好的方法来编写它以便传递jslint?

1 个答案:

答案 0 :(得分:3)

在这些街区之后摆脱else。 JSLint试图告诉你的是,在else块之后使用if将控制转移出周围的块语句是没有意义的。它在语法上还可以,但是,它是傻瓜。 else之后使用if仅在控制流从if块中移出后续代码时才有用。由于你在那里有break个陈述,这种情况永远不会发生。

如果没有更多的背景,是否可以改善整体逻辑很难说。