JavaScript进阶-var、let、const 的区别

前面有章节已经学习过ES6的新特性:前端学习手册-ECMAScript 6 入门(十四)

后续将分类梳理JavaScript进阶的知识点,更加的详细。

整理的过程中,能够巩固知识点,汲取新知识,拓宽知识面,一起学习成长,一定会有所收获和突破。

一、var

1.存在变量提升,声明会被提升到作用域顶部,但赋值不会,为undefined

undefined 是 JavaScript 的一个原始数据类型,表示变量已声明但尚未赋值,或者表示某个值或属性不存在。

2.函数作用域,在函数内声明的变量可以在整个函数内访问,在函数外声明则成为全局变量。

3.允许在同一作用域内重复声明,值会被覆盖。

4.可以重新赋值

二、let

function getName1(){
    console.log('声明前使用:',name1)
    let name1='小南'
    let name1='小南2号'
        console.log('代码块内访问:',name1)
    name1='码农生存指南'
    console.log('修改后的名字:',name1)
}
getName1()
console.log('代码块外访问:',name1)

1.不存在变量提升,如果在声明前使用会触发 "暂时性死区",报错,不执行后面的操作。

2.块级作用域,变量仅在当前代码块( {} )内可访问,代码块访问会报错,不执行后面的操作。

3.不允许在同一作用域内重复声明

4.可以重新赋值

三、const

1.块级作用域,与 let 相同

2.不存在变量提升,与 let 相同

3.不允许在同一作用域内重复声明

4.声明的变量不能重新赋值,但如果是对象或数组,其属性/元素可以修改

最佳实践建议:

1. 默认使用 const :当你确定变量值不会改变时

2. 需要重新赋值时使用 let :当变量值需要变化时

3. 尽量避免使用 var :除非需要兼容非常旧的 JavaScript 环境

这种做法可以防止意外修改不应改变的值,并利用块级作用域避免变量泄漏问题,提高代码的可维护性和可读性。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值