猫幻  

let和var区别

var出了块级区域有效

let出了块级无效

var声明均视为作用域顶部声明 因为var具备变量提升能力

let声明不具备变量提升能力,离开作用域后就会马上失效,适合局部变量容易掌控

变量提升还带有一个问题,声明之前使用产生的结果不相同

var在后面声明前面输出值逻辑怪异,结果显示undefined一般表示变量声明,只是没赋值,一般顺序都是在前面

例子:

console.log(value);
var value;
变量提升导致逻辑怪异
let声明方式不管前后都是引用错误
例子:
//let count放前面可以用符合逻辑
// console.log(count);
// let count//错的详细
 var重复声明只取后面的值
let不能重复声明,重复声明会报错只能声明一个其中一个是var也不行
可以一个在作用域内部,一个在外部(不能使用会混乱)
 
循环时,var和let区别更明显
let只在内部循环有效,后续使用i不会受到干扰
var全局都有效,但是在使用i会受到干扰
 
let和const
const的声明的作用:创建一个常量,声明就不可以更改
和let相同的是,const声明后无法提升,存在临时死区
临时死区:if(true){
死区开始
vlue=10;
console.log(vule);
死区结束
}
 
和let不同的是,const声明后不立马赋值就会报错
 
 
 
 
 
 
 

 

posted on 2021-11-23 15:28  猫幻  阅读(231)  评论(0)    收藏  举报