首页 > web前端 > js教程 > 正文

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

一个新手
发布: 2017-10-10 10:24:58
原创
2294人浏览过


一、 定义函数的方式

定义函数有两种方式:函数声明和函数表达式。
函数声明的语法是这样的:

function functionName(arg0,arg1){//函数体}
登录后复制

首先是function关键字,然后是函数的名字,这就是指定函数名的两种方式。关于函数声明,他最重要的一个特征,就是函数声明提升,意思是会在执行代码前读取函数声明。这就意味着可以把函数声明放在调用它的语句后。如:

a();function a(){alert("a");}//a
登录后复制

这个例子不会出错,因为在执行代码前就会先读取函数声明。
第二种创建函数的方式是函数表达式,下面是最常见的一种方式:

var a = function(arg0,arg1){//函数体};
登录后复制

这种形式看起来就像常规的变量赋值语句,即创建一个函数并把它赋值给变量a,这种情况下创建的函数叫做匿名函数,因为function关键字后面没有标识符。
函数表达式与其他表达式一样,在使用前必须赋值。下面的代码会导致错误:

a();var a = function(){alert("a");};//错误//补充说明:使用该方法定义函数,只有变量声明提前了,变量初始化代码仍在原来的位置
登录后复制

二、 函数声明与函数表达式的区别

1、函数声明中函数名是必须的,函数表达式中则是可选的。

//函数声明
    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));    //以上两种都可以
登录后复制

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

根本原因在于解析器对于这两种定义方式读取的顺序不同:解析器会实现读取函数声明,即函数声明放在任意位置都可以被调用;而对于函数表达式,解析器只有在读到函数表达式所在那一行时才会开始执行(详情请看第一部分“函数定义的方式”)。

以上就是函数声明与函数表达式有什么区别的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号