js中的声明关键字var,let,const

首先,我们需要一点点的知识储备
1全局作用域:当你不使用关键字进行声明的时候,就是全局变量。这个比价好理解
2函数作用域:在函数范围内使用的变量
3块级作用于,在{}范围内使用的变量。我会把块级作用域和函数作用域搞混。
块级作用域是在例如

if(){
}
或者是
for(){
}

这种是块级作用域
4函数提升和变量提升
就是js在进行编译的时候,会把var申明的变量提高到最前面。函数也会提到最前面。让所用使用这个函数的,不至于会找不到它

let,块级作用域
var,函数作用域,可以跨级作用域,会进行变量提升(在函数内或者是在当前的上下文中),可以重复声明
const,块级作用域,不可改变值,声明的变量为常量

有一个经典的题目,知识点是var跨块级作用域,let的作用于范围只是块级作用域名

for(var i = 0 ; i<10;i++){
	setTimeout(){
		console.log(i)
	}
}
进行解析一下
var i = 0{
	var temp = i;
	console.log(i)
}
i++;
{
	var temp = i;
	console.log(i)
}
i++;
......

现在看起来就比较的明显了,因为var是可以跨块级作用域的,而且它是可以重复声明的,所以这个temp看起来声明了很多次,但实际上它只是一个变量而已

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值