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;})

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

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

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

  1. C语言基础:函数(Function) 分类: iOS学习 c语言基础 2015-06-10 21:48 14人阅读 评论(0) 收藏

    函数:一段具有某些特定功能的代码段. 使用函数的严格规定: 1.函数声明 2.函数定义 3.函数调用 函数声明:告知系统编译器该系统的函数名,函数参数,参数类型,参数个数,参数顺序等等,以便函数调用时 ...

  2. 指向函数的指针 分类: C/C++ 2015-07-13 11:03 14人阅读 评论(0) 收藏

    原文网址:http://www.cnblogs.com/zxl2431/archive/2011/03/25/1995285.html 讲的很清楚,备份记录. (一) 用函数指针变量调用函数 可以用指 ...

  3. shell入门之函数应用 分类: 学习笔记 linux ubuntu 2015-07-10 21:48 77人阅读 评论(0) 收藏

    最近在学习shell编程,文中若有错误的地方还望各位批评指正. 先来看一个简单的求和函数 #!/bin/bash #a test about function f_sum 7 8 function f ...

  4. Java 函数参数传递方式详解 分类: Java Game 2014-08-15 06:34 82人阅读 评论(0) 收藏

    转:http://zzproc.iteye.com/blog/1328591 在阅读本文之前,根据自己的经验和理解,大家可以先思考并选择一下Java函数的参数传递方式:  A. 是按值传递的?  B. ...

  5. C语言基础:函数指针 分类: iOS学习 c语言基础 2015-06-10 21:55 15人阅读 评论(0) 收藏

    函数指针:指向函数的指针变量. 函数名相当于首地址. 函数指针定义:返回值类型  (*函数指针变量名)(参数类型1,参数类型2,....)=初始值 函数指针类型:返回值类型  (*)(参数类型1,参数 ...

  6. C/C++中const的用法 分类: C/C++ 2015-07-05 00:43 85人阅读 评论(0) 收藏

    const是C语言的关键字,经C++进行扩充,变得功能强大,用法复杂.const用于定义一个常变量(只读变量),当const与指针,引用,函数等结合起来使用时,情况会变得复杂的多.下面将从五个方面总结 ...

  7. 浅谈声明与定义的区别 分类: C/C++ 2015-06-01 15:08 157人阅读 评论(4) 收藏

    以下代码使用平台是VS2012. 清楚明白声明与定义是一名合格的程序猿的基本要求. 本人认为,C++编码过程中谈及"声明"和"定义"是因为我们要使用一个变量.类 ...

  8. Ubuntu vim+ ctags(包含系统函数) + taglist 配置 分类: vim ubuntu 2015-06-09 18:19 195人阅读 评论(0) 收藏

    阅读大型代码,我们经常需要打开很多的代码文件,搜索各种定义.windows下用惯了ide的朋友,转战Linux的时候可能会觉得很难受,找不到合适的阅读工具.其实万能的vim就可以实现.下面介绍一下vi ...

  9. Transact-SQL 常用函数 分类: SQL Server 2015-02-03 09:47 284人阅读 评论(0) 收藏

    (1)DECLARE 两种用法: 1>: DECLARE @usid VARCHAR(50),@usna NVARCHAR(100),@grna NVARCHAR(100); 2>: DE ...

随机推荐

  1. CentOS7查看网络的相关命令

    转载自:https://www.linuxidc.com/Linux/2015-07/119555.htm 1.切换到超级用户 [Oscar@localhost 桌面]$ su root 2.查询可用 ...

  2. cxf-rs 和 swagger 的点

    1. 从web.xml 说起 <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class ...

  3. maven项目诡异的问题

    install 的 war包中 dao 文件夹下没有xml文件 解决:重新注册为maven项目

  4. MySQL性能调优与架构设计——第 14 章 可扩展性设计之数据切分

    第 14 章 可扩展性设计之数据切分 前言 通过 MySQL Replication 功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时候,我 ...

  5. pytest 常用命令行选项(一)

    pytest有丰富的命令行选项,以满足不同的需要,下面对常用的命令行选项作下简单介绍.  上文已经使用过-v选项,还有很多选项,你可以使用pytest --help查看全部选项.如下图: 1.--co ...

  6. cocos studio

    用了几天,和之前用的cocos creator以及unity的编辑器一对比,很多地方都挺反人类的哈... 拖拽和放大场景元素竟然还要切换一下编辑模式... 移动场景元素竟然没有单独控制x或者y方向的移 ...

  7. VLC简介及使用说明

    一.简介    VLC的全名是Video Lan Client,是一个开源的.跨平台的视频播放器.VLC支持大量的音视频传输.封装和编码格式,完整的功能特性列表可以在这里获得http://www.vi ...

  8. 在Azure DevOps Server (TFS) 中修改团队项目名称

    概述 [团队项目]: 在Azure DevOps Server (原名TFS)中,团队项目(Team Project)是一个最基本的数据组织容器,包含了一个团队或者信息系统中的所有信息,包括源代码.文 ...

  9. TSQL--按某字段列分组,在将各组中某列合并成一行

    鉴于群里很多同事在问这个问题,我简单写个Demo,希望对初学者有帮助! 无真相,无解说,不解释,直接上Code! --========================================= ...

  10. C#之23中设计模式

    本身打算把二十三种设计模式,总结一下.总结了几个设计模式后发现已经有博主总结的非常详细,内容丰富,我看了后也是受益良多.大家可以参考他的博客,地址如下: https://www.cnblogs.com ...