zoukankan      html  css  js  c++  java
  • JS中函数声明与函数表达式的不同

    Js中的函数声明是指下面的形式:

    function functionName(){  
      
    } 

    这样的方式来声明一个函数,而函数表达式则是类似表达式那样来声明一个函数,如:

    var functionName = function(){  
    }  

           可能很多朋友在看到这两一种写法时会产生疑惑,这两种写法差不多,在应用中貌似也都是可行的,那他们有什么差别呢?

           事实上,js的解析器对函数声明与函数表达式并不是一视同仁地对待的。

           对于函数声明,js解析器会优先读取,确保在所有代码执行之前声明已经被解析,而函数表达式,如同定义其它基本类型的变量一样,只在执行到某一句时也会对其进行解析。

    所以在实际中,它们还是会有差异的,具体表现在,当使用函数声明的形式来定义函数时,可将调用语句写在函数声明之前,

    init();              //在函数声明前调用方法
    function init(){
        alert("我是函数声明"); 
    }

    // 弹窗:我是函数声明

    而后者,这样做的话会报错。

    init();              //在函数表达式前调用方法
    var init = function (){
        alert("我是函数表达式");
    }
    
    // 控制台报错:undefined is not a function
  • 相关阅读:
    checkbox判断选中的三种方法
    bzoj 4031: [HEOI2015]小Z的房间
    bzoj 5056: OI游戏
    Hdoj 5181 numbers
    Loj #6164. 「美团 CodeM 初赛 Round A」数列互质
    Codeforces 869 C The Intriguing Obsession
    Loj #6142. 「2017 山东三轮集训 Day6」A
    bzoj 3714: [PA2014]Kuglarz
    Loj #6185. 烷基计数
    [HNOI2008]水平可见直线
  • 原文地址:https://www.cnblogs.com/Megasu/p/4372386.html
Copyright © 2011-2022 走看看