在javascript函数的循环中设置全局布尔变量的最佳语法

在javascript函数的循环中设置全局布尔变量的最佳语法,javascript,Javascript,这就是我现在拥有的: var flag = false; (function() { for (var i = 0; i < 5; i += 1) { // some code .... // How can I rewrite the following? if (!flag) {

这就是我现在拥有的:

            var flag = false;

            (function() {
                for (var i = 0; i < 5; i += 1) {
                    // some code ....
                    // How can I rewrite the following?
                    if (!flag) {
                        flag = true;
                        // can't break
                    }
                }
            })();

            console.log(flag);
var标志=false;
(功能(){
对于(变量i=0;i<5;i+=1){
//一些代码。。。。
//我如何重写以下内容?
如果(!标志){
flag=true;
//不能打破
}
}
})();
控制台日志(标志);

我的目标是在函数执行时将标志设置为true。性能相同或更好的更优雅的语法是什么

谢谢

更新: 此后,我了解到更改布尔值比检查布尔值要快:

var标志=false;
(功能(){
对于(变量i=0;i<5;i+=1){
//一些代码。。。。
}
flag=true;
})();
控制台日志(标志);
我不太明白你问题的重点,但是如果你想在调用函数时将其设置为true,那么在调用函数时将其设置为true即可

重写的一种方法:

if (!flag) {flag = true;}


这并不一定更好,因为每次迭代都会有一个任务。

有趣的问题,让我们看看关于翻转开关的反馈。我想这更多的是关于优雅而不是性能。顺便说一句,
i++
至少少了一个字符。在本例中,您实际上不需要在
if
语句后面加括号……我认为您为了使函数更清晰,已经忽略了太多带有注释的代码。如果您的目标是根据循环中的某些条件将标志设置为true,那么如果(!flag)flag=true,则无需
,只需写入
flag=true而不是标志的意义是什么?循环中是否有一些代码应该只在第一次迭代时出现?请提供完整的代码,并详细说明您的目标。目前,您可以将整个脚本简化为
console.log(true)
也许我们可以忽略循环。我想我是在问是否有更好的写作方法:if(!flag){flag=true;}。可能还有其他函数将其设置为true。如果调用该函数,则您的需求将设置flag=true。如果其他函数也将其设置为true,为什么这很重要?这很简单,也很干净。对,但我不想每次调用函数时都将true标志重置为true,因此检查(!flag),这是否有助于性能?@techguy2000“我的目标是在函数执行时将标志设置为true。”这就是您所说的。这就是我的答案。@techguy2000,不,这对性能没有帮助,检查条件需要计算时间这里没有好处,最好只写
flag=true@asimes我就是这么说的<代码>这并不一定更好,因为每次迭代都会有一个赋值
我只是展示了重写if语句的另一种方法。。。真的投了反对票吗???是的,投了反对票。你接受了他的低效代码,并以同样低效的方式编写。他问如何使它更好,但这并没有达到他的要求。我断言它更好吗?为什么if(!flag){flag=true;}效率低下?
if (!flag) {flag = true;}
flag = (!flag ? true: flag );