var与let的区别

发布于:2022-10-29 ⋅ 阅读:(375) ⋅ 点赞:(0)

文章目录

1. var 可以声明提升     let不能声明提升

         var 可以声明提升但是很少这样写        

    console.log(name)
    var name="张三"     //打印出  张三   

2. var 没有局部作用域   let有局部作用域

        let在作用域内,正常打印

    function btn() {
        for (var i = 0; i < 5; i++) {
            console.log(i)
        }
    }
    btn()         //打印出 0 1 2 3 4

    function btn() {
        for (let i = 0; i < 5; i++) {
            console.log(i)
        }
    }
    btn()         //打印出 0 1 2 3 4

         var 不在作用域内,可以正常打印   

    function btn() {
        for (var i = 0; i < 5; i++) {
           
        }
         console.log(i)          //仍然可以打印i,打印结果是5
    }
    btn()

         let不在作用域内打印会报错          声明的let只在for循环里使用,所以for循环用let声明

    function btn() {
        for (let i = 0; i < 5; i++) {
           
        }
         console.log(i)            //报错
    }
    btn()

 

3. 声明覆盖

var let="张三"
var let="李四"
console.log(let)   //打印出  李四

var name="张三"
var name="李四"
console.log(name)    //打印出   李四

总结

var 无块级作用域,存在变量覆盖,可以声明提前。

let  有块级作用域,存在变量覆盖,不能声明提前。

let是es6里的语法,所以学习过es6以后,可以把 var 换成 let

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到