美文网首页
函数声明、函数表达式区别

函数声明、函数表达式区别

作者: Allan要做活神仙 | 来源:发表于2018-05-01 09:27 被阅读8次

1)函数声明(Function Declaration);
// 函数声明

    function funDeclaration(type){
        return type==="Declaration";
    }

2)函数表达式(Function Expression)。
// 函数表达式

    var funExpression = function(type){
        return type==="Expression";
    }

上面的代码看起来很类似,感觉也没什么太大差别。但实际上,Javascript函数上的一个“陷阱”就体现在Javascript两种类型的函数定义上。下面看两段代码(分别标记为代码1段和代码2段):

1     funDeclaration("Declaration");//=> true
2     function funDeclaration(type){
3         return type==="Declaration";
4     }
1     funExpression("Expression");//=>error
2     var funExpression = function(type){
3         return type==="Expression";
4     }

用函数声明创建的函数funDeclaration可以在funDeclaration定义之前就进行调用;而用函数表达式创建的funExpression函数不能在funExpression被赋值之前进行调用。
为什么会这样呢?!这就要理解Javascript Function两种类型的区别:用函数声明创建的函数可以在函数解析后调用(解析时进行等逻辑处理);而用函数表达式创建的函数是在运行时进行赋值,且要等到表达式赋值完成后才能调用。
代码1段JS函数等同于:

    function funDeclaration(type){
        return type==="Declaration";
    }
    funDeclaration("Declaration");//=> true

代码2段JS函数等同于:

var funExpression;
    funExpression("Expression");//==>error
    funExpression = function(type){
        return type==="Expression";
}

相关文章

  • 函数

    函数声明和函数表达式有什么区别 函数声明 函数表达式 函数声明和函数表达式的区别: 函数声明必须给定函数名称,函数...

  • web前端-js小记(3)-函数及作用域

    1. 函数声明和函数表达式有什么区别 函数声明 函数表达式 区别:函数声明不用把声明放到函数调用的前面,函数表达式...

  • 函数

    一、函数声明和函数表达式有什么区别 函数声明: 函数表达式: 区别:在于函数声明前置的不同,函数声明是整个函数前置...

  • 函数与作用域

    函数声明和函数表达式有什么区别 函数声明 函数表达式 区别 函数表达式结束后需要加;表示声明变量结束。 函数表达式...

  • JS函数

    1.函数声明和函数表达式有什么区别 声明函数使用function可以声明一个函数 函数表达式 区别声明函数声明不用...

  • 进阶任务三

    1.函数声明和函数表达式有什么区别 函数声明 函数表达式 区别: 函数调用可以发生在函数声明之前,不能在函数表达式...

  • 函数与作用域

    函数声明和函数表达式有什么区别 函数声明 使用function关键字可以声明一个函数 函数表达式 区别 函数声明:...

  • JS函数与作用域

    1.函数声明和函数表达式有什么区别 函数声明: 函数表达式: 区别: 使用函数声明方式定义的函数,可以在声明前调用...

  • 函数与作用域

    1. 函数声明和函数表达式有什么区别 函数声明和函数表达式都是声明函数的方式 区别1 写法:函数声明 : fu...

  • 16-函数、作用域链、声明前置、递归

    1.函数声明和函数表达式有什么区别? (1)函数声明: (2)函数表达式: 区别: 类似于var声明,函数声明可以...

网友评论

      本文标题:函数声明、函数表达式区别

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