相关疑难解决方法(0)

为什么JavaScript中的"继续"语句不好?

在Douglas Crockford 所着的Javascript:The Good Parts一书中,这是作者对继续声明所说的全部内容:

continue声明跳转到循环的顶部.我从未见过一段没有通过重构来删除continue语句而得到改进的代码.

这真让我困惑.我知道Crockford对JavaScript有一些非常自以为是的看法,但这对我来说听起来完全错了.

首先,continue不仅仅是跳到循环的顶部.默认情况下,它也会进入下一次迭代.那么克罗克福德的陈述是不是完全虚假的信息呢?

更重要的是,我并不完全理解为什么continue甚至会被认为是坏事.这篇文章提供了似乎一般的假设: 为什么在循环中继续一个坏主意?

虽然我理解continue在某些情况下如何使代码难以阅读,但我认为它可以使代码更具可读性.例如:

var someArray=['blah',5,'stuff',7];
for(var i=0;i<someArray.length;i++){
    if(typeof someArray[i]==='number'){
        for(var j=0;j<someArray[i];j++){
            console.log(j);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这可以重构为:

var someArray=['blah',5,'stuff',7];
for(var i=0;i<someArray.length;i++){
    if(typeof someArray[i]!=='number'){
        continue;
    }
    for(var j=0;j<someArray[i];j++){
        console.log(j);
    }
}
Run Code Online (Sandbox Code Playgroud)

continue在这个具体的例子中并不是特别有益,但它确实证明了它减少了嵌套深度的事实.在更复杂的代码中,这可能会提高可读性.

Crockford没有解释为什么continue不应该使用,所以这个意见背后有一些更深层次的意义,我错过了吗?

javascript readability continue

62
推荐指数
3
解决办法
2万
查看次数

标签 统计

continue ×1

javascript ×1

readability ×1