javascript let和const关键字
let声明的变量只在let命令所在的代码块内有效
const声明一个只读的常量,一旦声明,常量的值就不能改变
在ES6之前,javascript只有两种作用域:全局变量和函数内的局部变量
块级作用域
使用var关键字声明的变量不具备块级作用域的特性,它在{}外依然能被访问到
ES6可以使用let关键字来实现块级作用域,let声明的变量只在let命令所在的代码块{}内有效,{}外不能访问
重新定义变量如果使用var关键字也会重新声明代码块外的变量,使用let关键字可以解决这个问题
在函数体内使用var关键字和let关键字的作用域都是局部的
在函数体外或代码块外使用var关键字和let关键字的作用域都是全局的,区别在于前者的变量属于window对象,后者不属于window对象
在相同的作用域或块级作用域中,不能使用let关键字来重置var/let关键字声明的变量,不能使用var关键字来重置let关键字声明的变量
let关键字不同作用域,或不同块级作用域中是可以重新声明赋值的
const关键字
用于声明一个或多个常量,声明时必须进行初始化(赋值),且初始化后值不可再修改,作用于块级作用域
const定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的
比如:
const cars = ["Saab", "Volvo", "BMW"]; cars[0] = "Toyota"; cars.push("Audi");
在相同的作用域或块级作用域中,不能使用const关键字来重置var/let/const关键字声明的变量
const关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的
变量提升
var关键字定义的变量可以先使用再声明,但是let/const定义的变量需要先声明再使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具