zoukankan      html  css  js  c++  java
  • 作用域与变量提升

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

    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(){}
    

      

  • 相关阅读:
    SQL中存储过程与自定义函数的区别
    内置函数
    正则表达式
    HTML发展史
    触发器
    事务
    视图
    索引的使用
    存储过程和自定义函数的区别
    游标用法
  • 原文地址:https://www.cnblogs.com/xiaobai1/p/10525785.html
Copyright © 2011-2022 走看看