“var”和“let”关键字之间的区别?
这篇文章将是一系列小文章中的第一篇,这些文章将涵盖您在求职面试中可能会遇到的一些问题。
我将更加专注于 JavaScript,但将来也会有一些关于 HTML、CSS 和 React JS 的帖子!
好的,我们开始吧!
差异 1!
“var”从一开始就在 JavaScript 中引入,而“let”是在 ES2015/ES6 中引入的。
差异 n 2!
“Let”具有块作用域,而“var”具有函数作用域
让我们看看这个例子
let x = function() {
if(true) {
var v = 2;
let l = 1;
}
console.log(v);
--> 2
console.log(l);
--> Uncaught Reference: l is not defined
}
x();
由于“var”关键字的函数作用域,变量 v 的 console.log 将返回 2,而由于“let”关键字的块作用域,变量 l 将返回错误。
差异 n 3!
用“var” 定义的变量会被提升到函数的顶部,而用“let”定义的变量 不会被提升。
let x = function() {
if(true) {
console.log(v);
--> undefined
console.log(l);
--> Uncaught Reference: l is not defined
var v = 2;
let l = 1;
}
}
x();
在这种情况下,变量 v 将返回未定义,而 l 变量将返回错误,发生这种情况是因为使用var 的声明被提升/提升到其功能/本地范围的顶部(如果在函数内部声明)或其全局范围的顶部(如果在函数外部声明),无论实际声明在哪里进行。
就是这样!没有什么太复杂的,但重要的是要记住这些概念。
很快会看到更多提示!
文章来源:https://dev.to/nunocpnp/differences- Between-var-and-let-keywords-2b85