• 作用域与变量提升


    作用域:对某个范围产生作用,外部不能访问内部变量,但内部可以访问外部变量

    var i = 0
    function outer() {
      console.log(i)//0  
    }
    

      

    function outer() {
      var i = 0
      console.log(i)//0  
    }
    console.log(i)//报错,外部不可访问内部
    

      

    变量提升:变量的声明被自动移动到了函数或全局代码的最顶上。函数声明可以写在任何地方,但是不能不写,不写报错

    function outer() {
      console.log(i)//报错,未被声明,
    }
    
    function outer() {
      console.log(i)//undefined变量提升是把声明提至最前面,即var i但是赋值=0还在原来位置
      var i = 0
    }
    
    function outer() {
      var i = 0
      console.log(i)//0
    }
    

      注意:var、function、function *和let、const、class的的提升却并不相同

    //声明的函数名和变量一致的情况下,分为两种
    //一:函数申明。function foo(){}这种形式,函数优先
    console.log(foo)//function foo(){}
    var foo = 'aa'
    function foo(){}
    
    //二:函数表达式。var foo=function(){}这种形式
    console.log(foo)//undefined
    var foo = 'aa'
    var foo = function(){}
    

      

  • 相关阅读:
    CF57C Array
    P4739 [CERC2017]Donut Drone
    CF1455D Sequence and Swaps
    LG P4351 [CERC2015]Frightful Formula
    5. React-router1- react-router理解
    5. React-router0- spa理解和路由的理解
    axios案例学习总结
    axios源码和常用方法
    http8种请求方式
    axios-http,ajax的封装,axios的使用
  • 原文地址:https://www.cnblogs.com/xiaobai1/p/10525785.html
Copyright © 2020-2023  润新知