var,let,const的区别


var,let,const的区别


之前在前段交流群中遇到有同学问var,let与const有啥区别,自己始终记不住,其实每个大的知识点都是由一些小知识点积累起来的,今天我也要记录一下,var,let,const的区别,以便日后巩固知新,也便于大家学习。
let和const是ES6中新增加的两个用来声明变量的关键字,在没学习ES6之前,可能更多的用var来声明一个变量,例如 var name = xiaoming,在增加let与const之后,这三个用来声明变量的关键字一定是有区别的,那么今天我们就来讨论一下三者之间到底都有什么区别。
先看一段代码

{
    var a = 1;
    let b = 9;
   
}
console.log(a)
console.log(b)

输出结果为:
在这里插入图片描述我们会发现,上述这段代码只输出了a,输出b则报错,这就涉及到块级作用域的问题。
var声明的变量,作用域为函数体的全部,而let声明的变量,只作用在块级作用域里。
在这里插入图片描述如果将console.log(b)放在花括号里面,则能正确的输出,这也就是let与var的一共不同点:
1.var 声明的变量不受块级作用域的影响
2.let声明的变量只作用在块级作用域里,const也是如此

接着上图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从上图我们可以得出结论:
1.使用let或者const声明的变量,不能再重新被声明

接着上图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由图得出结论:
当使用var声明变量时,

console.log(data)
var data = 99
这段代码在运行时会转化为:
var  data
console.log(data)
data = 99
所以才会输出:undefined

let与const声明的变量则不会出现上述情况,这就是因为
let 和 const不存在变量提升
上图:
在这里插入图片描述
在这里插入图片描述
得出结论:
const声明后不能被修改,但是let可以
在这里插入图片描述得出结论:
常量为引用类型的时候,可以修改该引用类型,const只能保证声明的常量所指向的地址不变,但是不能保证 地址上的值不变
以上这些就是对var,let,const的简单总结!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值