【前端面试题】var、let和const有什么区别

 

目录

 

区别一览表:

 重复定义:

修改值:

声名提升:

 块级作用域:


区别一览表:

 重复定义:

        // var可以重复定义
       var name = '坤坤'
       var name = '小黑子'

  //    let不可以重复定义
       let color = 'red'
       let color = 'yellow'//报错

        //    const不可以重复定义
        const color = 'red'
        const color = 'yellow' //报错

修改值:

        // var定义的值可以修改
        var name = '坤坤'
        name = '小黑子'
        console.log(name, 'name');
        // let定义的值可以修改
        let color = 'red'
        color = 'yellow'
        console.log(color, 'color');
        // const定义的变量不能修改
        const type = 'number'
        type = 'String'//报错
        console.log(type, 'type');
        // const定义的对象或者是数组是可以修改的
        const obj = {
            name:'喷射战士'
        }
        obj.name = '战'
        console.log(obj,'obj');//可以修改

声名提升:

        console.log(name,'name');//可以声名提升(声名前使用)
        var name = '小黑子'

        console.log(nickName,'name');//不可以声名提升(声名前使用)
        let nickName = '小黑子'

        console.log(person,'name');//不可以声名提升(声名前使用)
        const person = '小黑子'

 块级作用域:

        var kunkun = '鸡你太美'
        function fun(){
            var kunkun = '只因你太美'
            console.log(kunkun,'kunkun');//输出结果为函数内部定义的变量
            // var有函数作用域,但没块级作用域
        }
        fun();

        {
            var name = '马保国'
            let title = '五连鞭'
            const person = '香蕉君'
        }
        console.log(name,'name--var');//可以拿到块级作用域里面的值
        console.log(title,'title--let');//不能拿到块级作用域里面的值
        console.log(person,'person--const');//不能拿到块级作用域里面的值

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值