const ,let 和 var 变量声明提升的区别

 第一种情况:
 
 let name = 'Dylan'

 

    function getName() {  
        console.log(name)
        let name = 'Deal'
    }
    getName();  // Cannot access 'name' before initialization 
    // function 函数首先在其上下文(范围)内进行查找
 
    // let 和 const 的变量被提升,但是与var 不同,它不会被初始化 
 
    // 在我们声明变量初始化之前,我们无法访问。 称为‘暂时性死区’  

 

 
  第二种情况:
    let name = 'Dylan'
 
    function getName() {
        console.log(name)
        var name = 'Deal'
    }
    getName();  //undefined
 

 

    // var 就不会报错,而是undefined 未定义
 
 第三种情况:
 
    let name = 'Dylan'
    
    function getName() {
        console.log(name)  // Dylan
    }
    getName(); 

 

posted @ 2020-05-11 20:30  清明|雨上  阅读(168)  评论(0)    收藏  举报