前端必考面试题 es6 let 和 var 的区别
程序员文章站
2022-03-04 13:02:45
...
1.let没有变量提升
变量提升 (当前作用域的上边 定义了 没有赋值 ,值为undefined)
console.log(a); //undefined
var a = 10;
console.log(b);
let b = 10;
2.let不能重复命名
var c = 10;
var c = 20;
console.log(c);
let c = 10;
let c = 20;
console.log(c);
3.块级作用域{ }
var是全局声明,let是块级作用的,只适用于当前代码块
var m = 5;
if(m){
var n = 100;
}
console.log(n);
// 块级作用域{ }
var m = 5;
if(m){
let n = 100;
}
console.log(n);
4.临时失效区 (暂时性死区) 当前作用域不允许同名的变量进来
用let声明的变量,不存在变量提升。而且要求必须 等let声明语句执行完之后,变量才能使用,不然会报Uncaught ReferenceError错误。
var x = 10;
function a(){
console.log(x);
let x = 20;
// console.log(x);
}
a();
下一篇: RDF查询语言SPARQL