zoukankan      html  css  js  c++  java
  • 函数声明和函数表达式的区别

    函数声明:

    function say(param){
    console.log('hellow '+param)
    }


    函数表达式:

    var say = function(param){
    console.log('hellow '+param)
    }

    可以看到函数表达式多了一个赋值“=”,将这个指针保存在变量中,它们的运行效果是一样的。

    注意点:(在js解析器的解析下它们的调用顺序是一不一样的)

    例子:(函数声明:这种方式不管你是在代码最前端声明还是放在最后声明,它们在解析时都会被放在最前端;)

    say('world');

    function say(param){
    console.log('hellow'+param)
    }

    //hellow world

    例子:(函数表达式:你必须按照调用顺序先写表达式再去调用)

    say('world');

    var say =function(param){
    console.log('hellow '+param)
    }

    //Uncaught TypeError: say is not a function(…)

    可以看到上面的不同结果,函数声明方式创建的函数在JS中就是一等公民。具有最有最优先权!

     

    当然有例外情况:比如你应用了Common JS的模块规范;

    var say =function(param){
    console.log('hellow '+param)
    }

    module.exports = {
    say: say
    }

    在这种情况下,你的方法已经暴露出去了,这个方法在代码的任何一个上下文中都可以执行,相当于函数声明的方式!

  • 相关阅读:
    CSP-S全国模拟赛第三场 【nan死了】
    ●SCOI2018 AFO
    ●洛谷P2934 [USACO09JAN]安全出行Safe Travel
    ●洛谷P3233 [HNOI2014]世界树
    ●洛谷P2495 [SDOI2011]消耗战
    ●UOJ58 [WC2013]糖果公园
    ●洛谷P1903 [国家集训队]数颜色
    ●BZOJ 4237 稻草人
    ●Joyoi Normal
    ●CodeForces 698C LRU
  • 原文地址:https://www.cnblogs.com/xiaojingyuan/p/5912030.html
Copyright © 2011-2022 走看看