var,let,const之间的区别
var 是ES5的声明变量语法,let 与 const 是ES6才出现的声明变量语法
var
var 拥有函数作用域,在函数外是全局的,在函数内是局部的
var a = 10 function demo(){ var a = 20 console.log(a) // 20 }
demo()
console.log(a) // 10
var 拥有声明头的提升
console.log(a) // undefined var a = 10 ---------------------------------- // 会被编译成 var a console.log(a) a = 10
var 可重复声明,后面的会将前面的给覆盖
var a = 10 var a = 20 console.log(a) // 20
let
let 是块级作用域,但是所声明的变量,只在let
命令所在的代码块内有效
{ let a = 10 } console.log(a) // ReferenceError: a is not defined
------------------------------------------------------
let a = 10
function demo(){
let a = 20
console.log(a) // 20
}
demo()
console.log(a) // 10
let 没有声明头的提升
console.log(a) // ReferenceError: Cannot access 'a' before initialization
let a = 10
let 不能够重复声明
let a = 10 let a = 20 console.log(a) // SyntaxError: Identifier 'a' has already been declared
const
const 基本上和 let 一样 是一个块级作用域,没有声明头的提升,不能够重复声明
但是 const 定义的是一个常量,使用了 const 进行定义的变量不能够进行修改
const a = 10 a = 20 console.log(a) // TypeError: Assignment to constant variable.
var 和 let 的应用
var 现在比较少用了,一般改用 let ,因为 var 没有块级作用域
如:
var a = 1 for(var a = 5 ; a <= 10 ; a++){ // console.log(a) } console.log(a) // 11 因为什么块级作用域,所以在上面命名的变量会与进行for循环中的变量重叠
但是在 let 中就没有这种情况了
let a = 1 for(let a = 5 ; a <= 10 ; a++){ // console.log(a) } console.log(a) // 1 let 是块级作用域,其在 for 定义的变量不会影响外部所定义的变量
参考资料 https://blog.csdn.net/weixin_44475093/article/details/112504907
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构