什么时候应该在 JavaScript 代码中使用“var”、“let”或“const”[重复]

问题描述 投票:0回答:2

JavaScript 新手和初学者。我遇到了 JavaScript 变量,并意识到可以使用三种不同的方法来处理它们(var、let 和 const)。它们是否都有特定的用途,或者您可以在整个过程中只使用一个?

在谷歌上进行了一些搜索,显然 var 适用于旧浏览器,但我想从实际开发人员那里找出,在当今时代最好使用哪一个?还是根本不重要?

javascript
2个回答
15
投票

let 和 const 关键字在 ES6 (2015) 中引入。var 自 Javascript 诞生以来就存在

常量:


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

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

let 和 var


范围:-

两者的主要区别在于范围规则。 var 声明的变量的作用域为直接函数体,而 let 变量的作用域为直接封闭块。

函数打印(){

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

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

打印();

吊装:-

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

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

function print() {

  console.log(name); // undefined

  var name = "Hassan";

  console.log(name); // Hassan
}

打印();

let 变量在其定义被求值之前不会被初始化。在初始化之前访问它们会导致引用错误。

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

print2();

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


3
投票

我认为现在最好使用 let 和 const。

根据 ES6 标准,这些选项的范围更加方便。两者都给了我们所谓的块作用域。这意味着它们的使用范围可以限于代码块,例如 for 循环或 if 表达式。这使开发人员可以更灵活地选择变量的范围。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.