javascript - 在函数中使用 let 而不是 var 的优点

标签 javascript function ecmascript-6 encapsulation var

<分区>

假设我有一段这样的代码:

const number = 3;

function fooFunction() {
  let numberTwo = 5;
  var answer = number + numberTwo;
  return answer;
}

finalAnswer = fooFunction();

console.log(finalAnswer);

假设一个兼容 ES2015 的浏览器,使用上述代码的优点/缺点是什么,超过:

const number = 3;

function fooFunction() {
  var numberTwo = 5;
  var answer = number + numberTwo;
  return answer;
}

finalAnswer = fooFunction();

console.log(finalAnswer);

鉴于它们都返回相同的数字,有什么优点或缺点吗?

最佳答案

正如其他人所提到的,在您的示例中,您可以互换使用 letvar。区别在于 let 是 block 范围的,而 var 不是。

例如使用 var 你可以这样做(打印'foo'):

function printFoo(param) {
  if (param) {
    var x = "foo";
  }

  console.log(x);
}

printFoo("hello");

您不能使用 let 执行此操作,因为 let x 的作用域为 if block ,因此未定义。

关于javascript - 在函数中使用 let 而不是 var 的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37352784/

相关文章:

javascript - 在 Javascript 中,将 forEach 替换为每次通过循环过滤相同的对象数组并使用左连接

javascript - Google 通过 Reveal.js 实现分析目标

javascript - 为什么我的类构造函数中出现 "Uncaught ReferenceError: this is not defined"?

javascript - ASP.NET MVC - 修改记录时自动通知?

变量中的 JavaScript/HTML 代码?

用于显示显示垃圾值的矩阵元素的 C++ 函数

java - 是否有一种独立于语言的方法可以将函数添加到 JSR223 脚本绑定(bind)?

javascript - ES6,在访问 'this'并在派生类中定义常量之前必须调用super

javascript - 如何将 Vue 数据移动到外部文件?

javascript - 为什么我的嵌套路由无法正常工作?