let const var 区别
var
具有变量提升,但是JS没有块级作用于所以例如for循环当中var声明的变量,再for循环外部可以直接访问到
1 for(var i = 0 ; i < 10 ; i++){ 2 3 } 4 console.log(i); //10
1 for(var i = 0 ; i < 10 ; i++){ 2 setTimeout(function(){ 3 console.log(i); //打印十次10 4 },1000) 5 }
let
和var非常相似,区别在于,声明的变量,只在当前作用域内可以被访问,并且不允许重复声明
//for内部定时器访问 for(let i = 0 ; i < 10 ; i++){ setTimeout(function(){ console.log(i);//分别打印0-9 },1000) } //for外部访问 for(let i = 0 ; i < 10 ; i++){ } console.log(i) //报错 Uncaught ReferenceError: i is not defined //重复声明 let a = 1; let a = 2; //报错 //Uncaught SyntaxError: Identifier 'a' has already been declared
const
没的说,常量
作用全局,不能重复声明,如果是对象,可以修改对象内的属性
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步