js中var和let的区别

相同点

函数作用域

在一个函数内,不管是var还是let声明的变量,都不能在函数外进行使用

function xie(){
    var x=2
    let y=2
}

//在函数外不能使用x变量和y变量

全局作用域

声明var x=2和let y=2的全局变量,可以在函数体内使用

var x=2
let y=2

function xie(){
    //可以使用x变量和y变量
}

不同点

关于重新声明变量

声明了一个var x=2的全局变量,在代码块中修改为x=3,在离开该代码块后x变为了3

var x=2
{
    var x=3
}

//在此处x=3

而一个let x=2的全局变量,在代码块中修改为x=3,在离开该代码块后x还是2

let x=2
{
    let x=3
}

//此处x=2

关于块作用域

在代码块内声明了一个var x=2,在代码块外可以使用x变量

{
    var x=2
}

//此处可以使用x变量

在代码块内声明了一个let x=2,在代码块外不能使用x变量

{
    let x=2
}

//此处不能使用变量

关于循环

定义一个var x=2的变量,使用一个循环把x进行加减,x的值会随着循环的加减变化而变化

定义一个let x=2的变量,使用一个循环把x进行加减,x的值不会随着循环的加减变化而变化

小知识点

使用let定义的全局变量不能使用window对象,var的可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值