美文网首页
函数表达式和函数声明有什么区别?

函数表达式和函数声明有什么区别?

作者: 备用的昵称 | 来源:发表于2017-11-07 13:29 被阅读0次

    大家好,我是IT修真院成都分院第8期的学员,一枚正直纯洁善良的WEB前端程序员。今天给大家分享一下js中函数表达式和函数声明的区别。


    一、什么是FUNCTION EXPRESSION(函数表达式)?

    Function Expression 将函数定义为表达式语句(通常是变量赋值)的一部分。通过 Function Expression 定义的函数可以是命名的,也可以是匿名的。Function Expression 不能以“function”开头。

    EZ:使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式

    // 函数声明

    function funDeclaration(type){

    return type==="Declaration";

    }

    // 函数表达式

    var funExpression = function(type){

    return type==="Expression";

    }

    二、两者具体有哪些区别呢?

    (一)函数声明中函数名是必须的;函数表达式中则是可选的

    //函数声明

    function sum(a, b) {

    return a + b;

    }

    alert(sum(1, 2));

    //函数表达式

    var s = function sum(a, b) {

    return a + b;

    }

    alert(s(1, 2));

    var s = function(a, b) {

    return a + b;

    }

    alert(s(1, 2));

    //以上两种都可以

    (二)、用函数声明定义的函数,函数可以在函数声明之前调用,而用函数表达式定义的函数只能在声明之后调用。

    //函数声明

    alert(sum(1, 2));//3

    function sum(a, b) {

    return a + b;

    }

    //函数表达式:发生错误

    try {

    alert(s(1, 2));

    var s = function sum(a, b) {

    return a + b;

    }

    }

    catch (e) {

    alert("wrong!");

    }

    相关文章

      网友评论

          本文标题:函数表达式和函数声明有什么区别?

          本文链接:https://www.haomeiwen.com/subject/kkxjmxtx.html