代码之家  ›  专栏  ›  技术社区  ›  David542

使用var故意泄漏变量

  •  -1
  • David542  · 技术社区  · 4 年前

    下面的模式在javascript中可以吗,还是不赞成?如果是后者,有什么更好的方法?

    function arithmetic_sum(n) {
        for (var [i, sum] = [0, 0]; i <= n; sum += i++);
        return sum;
    }
    
    console.log(arithmetic_sum(10));
    // 55
    2 回复  |  直到 4 年前
        1
  •  0
  •   Samathingamajig    4 年前

    这是有效的JavaScript。

    有些人可能会喜欢这样,但它有点过时,并且混合了新旧样式(var,但结合了解构)。

    此外,在for循环的interaction子句中包含代码可能会令人困惑。

    我更喜欢这样:

    function arithmetic_sum(n) {
        let sum = 0;
        for (let i = 0; i <= n; i++) {
          sum += i;
        }
        return sum;
    }
    
    console.log(arithmetic_sum(10));
    // 55
        2
  •  0
  •   Marcellino Ornelas    4 年前

    这真的取决于诚实的人。有些人会喜欢这种模式,因为它使代码更短,但在我个人看来,它使代码更难理解。

    这之所以有效是因为javascript的提升。你可以在这里了解更多。 https://www.w3schools.com/js/js_hoisting.asp

    现在,如果你要切换这个代码 let 这个密码会被破解。

    我认为理解如何做也很重要 var 不同于 允许 & const .

    这篇文章很好地解释了这些差异 https://medium.com/@codingsam/awesome-javascript-no-more-var-working-title-999428999994

    我个人会这样写代码:

    function arithmetic_sum(n) {
        let sum = 0;
        for (let i = 0; i <= n; i++) sum += i;
        return sum;
    }
    
    
    console.log(arithmetic_sum(10));
    // 55