如我们所知,为了在javascript中声明变量,我们有两个选项或者用var声明,或者用let声明。现在的问题是何时使用var以及何时使用let,即两者之间的主要区别是什么。
在下文中,我们开始了解var和让in javascript之间的主要区别。
let和var之间的主要区别在于,用let定义的变量的作用域仅限于声明该变量的块,而用var声明的变量具有全局作用域。因此,我们可以说var是一个关键字,它在全局范围内定义变量,而与块范围无关。
let的范围不仅限于定义它的块,而且let的变量也不会与全局窗口对象一起添加,即使它在任何块之外声明也是如此。但是,如果窗口对象是全局定义的,我们可以通过var访问变量。
由于范围有限,通常在有限使用变量时(例如在for循环,while循环中或if条件范围之内)使用let变量,而在变量的值需要较少变化时使用var变量,并且全局访问。
同样,可以将var和let的区别在于使用var重新声明为其他值,而如果使用let定义则不能重新声明变量。
let a = 'hello'; // globally scoped var b = 'world'; // globally scoped console.log(window.a); // undefined console.log(window.b); // 'world' var a = 'hello'; var a = 'world'; // No problem, 'hello' is replaced. let b = 'hello'; let b = 'world'; // SyntaxError: Identifier 'b' has already been declared