Fork me on GitHub

javascript中函数声明和函数表达式的区别 分类: JavaScript 2015-05-07 21:41 897人阅读 评论(0) 收藏

1.js中函数表达式的定义

表达式(expression)JavaScript中的一个短语,javascript会将其计算(evaluate)出一个结果。程序中的常量是一个最简单的表达式。变量名也是一种简单的表达式,它的值就是赋值给变量的值。复杂表达式是由简单表达式组成。
——摘自《javascript权威指南》

一个经典的函数表达式的定义方法:

//函数表达式的声明,表达式的值就是这个新定义的函数
var expressFunc = function(){};

函数名称是函数声明语句必须得部分。它的用途就像变量的名字,新定义的函数对象会赋值给这个变量。对函数定义表达式来说,这个名字是可选的:如果存在,改名字只存在函数体中,并指代该函数对象本身。
注意:
以表达式来定义函数只适用于它作为一个大的表达式的一部分,比如在赋值和调用过程中定义函数。

//函数表达式的声明,表达式的值就是这个新定义的函数
var expressFunc = function(){};

//函数声明
function abc(){

}
//传入参数的函数声明
function abc2(test){

}

//函数表达式出入参数
var expressTest = function(test){};

//函数表达式可以包含名称,这里实际是将结果函数的结果赋值给expressTest
var expressTest = function evalu(test) {
    if (test) {
        return 2;
    }
    else{
        return -1;
    }
};
//console.log(evalu());   //错误的调用方式
console.log(expressTest());
//函数表达式作为参数传给其它函数
data.sort(function(a, b){return a-b;})

以函数表达式的方式来定义函数,函数的名称是可选的。如果定义了函数名称,这时函数名称会变成函数内部的一个局部变量(非常适合用于递归)。函数定义表达式特别适合用来定义只会用到一次的函数。

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2015-05-07 21:41  zhiqiang21  阅读(271)  评论(0编辑  收藏  举报