javascript - 有什么理由继续使用 var 吗?

标签 javascript declaration var

为什么不禁止“VAR”? 我的问题不是关于“var”和“let”之间的区别。所有这些答案都在宣扬使用“让”的优势。 我的问题是:为什么不坦率地说“不要再使用'var'了”? 有什么理由不那么直接吗?

“var”仍在许多严肃的教程网站上使用:Mozilla MDN、w3schools ... 我想知道是否有隐藏的原因让我失踪。

下面有一个答案:legacy(不支持 ES6 的旧浏览器) 这是唯一的原因吗? 任何性能原因? 或者一些花哨的使用提升?

[这是我原来的帖子的其余部分......

var arr = [];    // -> const arr = [];
var obj = {};    // -> const obj = {};
var temp;        // -> let temp;
var f = function(){};    // -> const f = function(){};

这样做,我认为变量可能表现得像 var 变量(提升等)的唯一方式是 - 不幸的 - 未声明的变量:x = sthg; 在某些函数中(成为:var x = sthg; 在全局范围内)。 如果我遗漏了什么,那将对我有很大帮助。 ]

最佳答案

在去年,我什至考虑过使用 var 的唯一一次是利用它被提升到代码块之外,尤其是在条件语句中。像这个人为的例子:

const oneOrZero = shouldBeOne => {
  if (shouldBeOne) {
    var test = 1
  } else {
    var test = 0
  }

  return test
}

在这种情况下,您可以将 var 替换为 let,但这总是让我觉得有些困惑:

const oneOrZero = shouldBeOne => {
  let test

  if (shouldBeOne) {
    test = 1
  } else {
    test = 0
  }

  return test
}

最后,我所做的是利用三元运算符和const。这具有在检查初始条件后不可重新分配的额外优势,这通常是我的意图:

const oneOrZero = shouldBeOne => {
  const test = shouldBeOne
    ? 1
    : 0

  return test
}

TL;DR:我已经一年多没用过 var 了。 const 更可取,通常会迫使我编写更好的代码。 let 偶尔有用。

关于javascript - 有什么理由继续使用 var 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48117489/

相关文章:

javascript - 对象/类内的函数声明

Delphi - 使用可选 VAR 参数调用过程?

javascript - 使用 "var"声明的变量和不使用 "var"关键字声明的变量有什么区别。

javascript - 永久清除 Canvas 中的绘图

c - c中的指针问题

javascript - excelJs 日元的货币格式

javascript - 为什么时间变量不改变?

ios - 使用var vs typealias有什么区别

javascript - 将字符串分割为两个字符

javascript - 使用javascript从日期中删除时间并将其传递给excel