JavaScript中的let变量与var变量的不同

在JS中,var与let都能声明变量,那么它们有什么不同呢?

 

两者的最主要区别是:var声明的变量的作用域是整个封闭函数

                                    let声明的变量只在其声明的块或子块中可用

上一下代码:

<!--let与var的区别-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>t6</title>
</head>
<body>

<button type="button" οnclick="myFunction()">戳我测试var</button>

<script>
    function myFunction() {
       
document.innerHTML="请按F12查看控制台"
       
var x=1;
       
if(true){
           
var x=2;
           
console.log(x);//写入控制台
       
}
       
console.log(x);//再在if块外写入一次x,观察x是1还是2
   
}
</
script>

</body>
</html>

 

运行结果:

 

可见两个x都是2,那么就是说var声明的变量的作用域是整个封闭函数(否则则是2,1)

 

var测试了,我们来测试一下let:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>t7</title>

</head>

<body>

<button type="button" οnclick="myFunction()">戳我测试var</button>



<script>

    function myFunction() {

        document.getElementById("ddt").innerHTML="请按F12查看控制台"

        let x=1;

        if(true){

            let x=2;

            console.log(x);//写入控制台

        }

        console.log(x);//再在if块外写入一次x,观察x是1还是2

    }

</script>

<p id="ddt"></p>

</body>

</html>

 

运行结果:

 

 

结果是2,1,那么就是说第二个x还是if块外面的那个let x=1,继而证明了let声明的变量只在其声明的块或子块中可用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值