美文网首页
var,let,const 的区别

var,let,const 的区别

作者: glassUp | 来源:发表于2022-09-05 19:33 被阅读0次
    var,let,const.jpg

    变量提升

    变量提升即将变量声明提升到它所在作用域最前面,而且仅仅是提升变量,不会提升所赋的值

    console.log(a) ;     //打印结果undefined
    var a = 123;
    

    执行流程

    var a ;     //变量提升
    console.log(a)    //undefined
    a=123      //赋的值并没有提升
    

    作用域

    在 ES6 之前,ES 的作用域只有两种:全局作用域函数作用域

    全局作用域:
    全局作用域中的对象在代码中的任何地方都能访问,其生命周期伴随着页面的生命周期。
    函数作用域:
    函数作用域就是在函数内部定义的变量或者函数,并且定义的变量或者函数只能在函数内部被访问。函数执行结束之后,函数内部定义的变量会被销毁。

    但是ES6之后,引入了let和const之后,js才算是拥有了块级作用域,块级作用域由{}组成,let和const定义的变量常量只在块级作用域内生效

    题目

    function foo(){
        var a = 1
        let b = 2
        {
          let b = 3
          var c = 4
          let d = 5
          console.log(a)
          console.log(b)
        }
        console.log(b) 
        console.log(c)
        console.log(d)
    }   
    foo()
    

    答案:
    a=1 b=3 b=2 c=4 d=ReferenceError
    (let和const在块级作用域中生效,块级作用域之外是访问不到块级作用域里面的)

    相关文章

      网友评论

          本文标题:var,let,const 的区别

          本文链接:https://www.haomeiwen.com/subject/kexknrtx.html