定义函数的方式有两种:一种是函数声明,另一种是函数表达式。

  函数声明的语法如下:

1 function functionName(arg0,arg1,arg2){
2   //函数体
3 }

  函数表达式的语法如下:

1 var functionName = function(arg0,arg1,arg2){
2 //函数体
3 }

  两者的区别:

  函数声明的特征就是函数声明提升,即执行代码之前js解析器会先读取函数声明,所以如下的代码不会提示错误。

1 sayHi();
2 function sayHi(){
3 alert("Hi!");
4 }

 而函数表达式的形式类似常规的变量赋值语句,创建一个函数(匿名函数)并将它赋值给变量。所以在使用之前必须先赋值,下面的代码会导致错误。

1 sayHi();    //错误:函数还不存在
2 var sayHi=function(){
3 alert("Hi!");
4 }

转载于:https://www.cnblogs.com/jizhongjing/p/4870099.html

Javascript中函数声明与函数表达式的不同相关推荐

  1. JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别

    函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...

  2. Javascript 函数声明和函数表达式的区别

    2019独角兽企业重金招聘Python工程师标准>>> Javascript Function无处不在,而且功能强大!通过Javascript函数可以让JS具有面向对象的一些特征,实 ...

  3. JavaScript的函数声明与函数表达式的区别

    1)函数声明(Function Declaration); // 函数声明function funDeclaration(type){return type==="Declaration&q ...

  4. Javascript 学习笔记 - 函数 - 关于IIFE - 关于函数声明和函数表达式 - 个人总结

    一切起源于一段代码(近来学完java基础 开始学习敲一下javascript): var getter = function(){var dayNames=["Sunday",&q ...

  5. JS中的函数声明和函数表达式

    JS中的函数声明和函数表达式 1. 函数声明定义一个具有指定参数的函数 函数声明提升, 函数声明在JS解析时进行函数提升,因此在同一个作用域内,不管函数声明在哪里定义,该函数都可以进行调用 hoist ...

  6. javascript函数声明和函数表达式

    JavaScript中定义函数最常用的方式是函数声明和函数表达式.这两种技术非常相似,有时甚至难以区分,但在后续章节中可以看到,它们之间还是存在着微妙的区别. JavaScript定义函数最基本方式是 ...

  7. javascript 函数声明与函数表达式的区别

    还是一样,先上代码: <script>var f = function g() {return 1;};if (false) {f = function g(){return 2;};}a ...

  8. 逆推继承看原型 函数的角色 函数声明和函数表达式的区别 函数中this指向的问题

    逆推继承看原型 <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...

  9. JavaScript程序开发(十四)—函数声明与函数表达式

    函数声明和函数表达式虽然都是在声明一个函数,但是二者有区别,解析器对二者的解析并非是一视同仁的.解析器会率先解析读取函数声明,并使其可以在执行任何代码前可用(可以访问):至于函数表达式,则必须等到解析 ...

  10. 深入理解javascript中的立即执行函数(function(){…})()

    2019独角兽企业重金招聘Python工程师标准>>> javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各 ...

最新文章

  1. 最新!NLG顶会INLG2021最佳长论文出炉!一作华人学生代表出席今晚INLG
  2. C# 系统应用之使用Pancel控件同一窗体切换页面
  3. linux生成地图,ROS中利用V-rep进行地图构建仿真
  4. 持续集成部署Jenkins工作笔记0009---创建SVN版本库并提交Maven工程
  5. 《Java安全编码标准》一导读
  6. 【软件测试】验收测试是以最终用户为主的测试
  7. break lab c语言,C语言printf详解
  8. 类型字节oracle 增强型时间类型以及postgresql时间类型
  9. 关于CUDA与CUDNN适配版本,以及安装中出现Bug的分析
  10. php想做一个无刷新弹窗,php+ajax实现无刷新的新闻留言系统
  11. 计算机北大核心期刊排名2020,2017年版北京大学核心期刊目录4(第八版,2018~2020适用)...
  12. 驱动开发:BSOD 0x93蓝屏 无效句柄
  13. 2012,当我们谈论移动互联网创业时,我们在谈论些什么?
  14. 华科计算机学院专业课,华中科技大学计算机专业课程表.xls
  15. 逆向——微信接收文本图片消息
  16. java课设 简单九宫格_Java实现九宫格的简单实例
  17. 更换计算机名后打不开PPT,PPT打不开的原因和解决办法 从检查开始 -电脑资料
  18. 怎样用N多小图片拼成一张大图?(数字图像处理)
  19. java base64转字图片、图片转base64字符串
  20. Linux查看网卡是rdma,Chelsio RDMA Block设备驱动测试

热门文章

  1. 【写给朱大虫的教程】【Ruby on Rails】【006】遵循Rails理念的快速实现
  2. 下面介绍一个开源的OCR引擎Tesseract2。值得庆幸的是虽然是开源的但是它的识别率较高,并不比其他引擎差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是G
  3. oracle数据库 日志满了
  4. Lecture 17 Shortest Paths I
  5. Python14 函数
  6. mysql本地连接错误解决办法
  7. smokeping自动检测系统
  8. LVS之一:基本命令和调度方法
  9. 剖析ASSERT函数
  10. 【Go语言】面向对象扩展——接口