var:
- var 是声明变量的主要关键字,它的作用域是函数作用域
- 函数作用域:意味着变量在函数内部声明是可见的,在函数外部声明是不可见的
- var 声明的变量可以被重新声明和赋值,它可以在同一个作用于下多次声明同一个变量
let:
- let 的作用域是块作用域,块作用域可以是函数、条件判断等内部{}包围的区域
- 与 var 不同的是,使用 let 声明的变量只有在块作用域才有效,并且不会被提升(hoisting),必须在使用之前先进行声明
- let 变量也可以被重新赋值,但是不能重新声明变量
const:
- const 用来声明常量,也就是用来声明一旦赋值就不能发生改变的变量
- const 与 let 相似,作用域也是块作用域,也不会被提升
- 与 let 和 var 不同的是,const 声明的变量必须在声明时进行初始化,并且不能再被赋值
- const 声明的常量仅限于绑定的引用不变,而不是值本身不改变,对象或数组是可以修改属性或元素,但是不能重新赋值为不同的对象或数组
总结
- 使用 var 声明的变量具有函数作用域,可以被重新赋值和声明
- 使用 let 声明的变量具有块作用域,可以被重新赋值,但是不能再同一作用域下再次声明
- 使用 const 声明的变量也具有块作用域,但是不能重新赋值和声明
推荐使用做法:
- 如果变量的值不需要再重新赋值,可以使用 const
- 如果变量的值需要重新赋值,可以使用 let
- 尽量避免使用 var,因为他的作用域和变量提升可能导致一些意外情况
posted @
2023-06-19 15:19
鱼仔_yuzai
阅读(
28)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通