在JavaScript代码中,何时应该使用“var”、“let”或“const”?

5

刚接触JavaScript,是一名初学者。我发现了JavaScript变量,并意识到有三种不同的方法(var、let和const)。它们各自是否有特定的用途,还是可以在整个程序中只使用其中一种方法?

在Google上搜索了一些信息,显然var是为了旧浏览器而设计的,但我想从实际开发人员那里找出,在当今这个时代,哪种方法最好使用?或者并没有真正的影响?


const变量是不可更改的。否则,let可能是最好的选择。 - Pointy
1
关于这个话题有很多文章,其中很多是最近由“真正的开发者”撰写的。我想如果你花更多时间阅读这些文章,你会对差异有一个很好的了解,并知道哪种方法最好使用。 - Cully
1
在不同的作用域中,let、const和var在变量遮蔽/重新声明方面有什么区别? - pilchard
https://www.w3schools.com/js/js_variables.asp - undefined
2个回答

2

在我看来,现在使用let和const更好。

根据ES6标准,这些选项在作用域方面更加方便。两者都给我们所谓的块级作用域。这意味着它们的使用范围可以限制在代码块中,比如for循环或if表达式中。这为开发人员在选择变量作用域时提供了更多的灵活性。

此外,如果我们考虑这些选项,那么你将无法更改使用const声明的变量,与var和let不同。

一般来说,根据需要,现在经常使用let和const。


2

let和const关键字是在ES6(2015)中引入的。var从JavaScript诞生时就存在。

const:


使用const声明的标识符不能被重新赋值

const name = "Hassan"
name = "Arafat";      // This will give an error

let & var


作用域:

两者之间的主要区别在于作用域规则。使用 var 声明的变量的作用域限定在当前函数体内,而使用 let 声明的变量的作用域限定在当前封闭块内。

function print() {

  {
    var name = "Hassan";`enter code here`
    let userid = "arafath007";
    console.log(name); // Hassan 
    console.log(userid); // arafath007
  }

  console.log(name); // Hassan
  console.log(userid); // ReferenceError
}

print();

提升:

使用let和var声明的变量都会被提升。提升是JavaScript的默认行为,将所有声明移动到当前作用域的顶部(移到当前脚本或当前函数的顶部)。

使用var声明的变量在代码运行之前会被初始化为undefined。因此,即使在声明之前,它们也可以在其封闭作用域中访问:

function print() {

  console.log(name); // undefined

  var name = "Hassan";

  console.log(name); // Hassan
}

print();

let变量在定义被评估之前不会被初始化。在初始化之前访问它们会导致ReferenceError。

function print2() {
  console.log(name); //ReferenceError
  let name = "Hassan";
  console.log(name); // Hassan
}

print2();

因此,当您知道标识符的值将更改时,请使用let。当标识符值是常量且不会更改时,请使用const。避免使用var,因为它会导致混淆和错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接