• 变量提升



    函数提升在变量提升之上

    js引擎在解析js代码的步骤:一是解释,二是执行

    解释就是先通篇扫描所有的js代码,然后把所有声明提到顶端,第二则是执行

    变量提升

    console.log(foo) /*打印 undefined*/
    var foo=1 /*变量被提升到当前环境的最顶端*/

     直接打印 

    console.log(foo)  /*报错*/

    函数提升

    foo() /*打印 1*/
    
    function foo(){
      console.log(1)      
    }/**函数声明提升把整个函数提升到当前环境的最顶端*/
    foo()/*打印 foo is bot a function*/
    var foo=function(){
      console.log(1)      
    }

    变量提升只会提升函数名,而函数提升则会提升整个函数

    var foo;
    console.log(foo) /*打印 undefined  定义未被赋值*/
    
    foo=1
    
    foo() /*foo is not a function 变量只提升函数名*/
    
    foo=function(){
      console.log(10)      
    }
    console.log(foo) /*输出函数体 */
    var foo=1
    console.log(foo) /* 1 */
    
    function foo(){
      console.log('1)      
    }
    
    console.log(foo) /* 1 */
    
    等价于
    
    function foo(){
      console.log('1)      
    }
    var foo;
    console.log(foo)
    foo=1
    console.log(foo)
  • 相关阅读:
    图解CSS3----1-关系选择器
    HTML5----热区(在图片img上第一超链接选区)
    Javascript----练习二(运算符)
    Javascript----练习一(变量)
    PHP表单
    maven
    Docker
    PHP字符串
    面向对象思想的核心概念
    虚方法
  • 原文地址:https://www.cnblogs.com/yewook/p/9548536.html
Copyright © 2020-2023  润新知