1. 函数声明:function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。
  2. 函数表达式 var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。
  3. 匿名函数:function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
 1 fnName();
 2 function fnName(){
 3     ...
 4 }
 5 //正常,因为‘提升'了函数声明,函数调用可在函数声明之前
 6
 7 fnName();
 8 var fnName=function(){
 9     ...
10 }
11 //报错,变量fnName还未保存对函数的引用,函数调用必须在函数表达式之后

 1 var fnName=function(){
 2     alert('Hello World');
 3 }();
 4 //函数表达式后面加括号,当javascript引擎解析到此处时能立即调用函数
 5 function fnName(){
 6     alert('Hello World');
 7 }();
 8 //不会报错,但是javascript引擎只解析函数声明,忽略后面的括号,函数声明不会被调用
 9 function(){
10     console.log('Hello World');
11 }();
12 //语法错误,虽然匿名函数属于函数表达式,但是未进行赋值操作,
13 //所以javascript引擎将开头的function关键字当做函数声明,报错:要求需要一个函数名

  1. ( function(){…} )()和( function (){…} () )

    1.   立即执行函数:减少闭包占用的内存,执行完即销毁
    2. function被当做函数声明的开始不能直接加圆括号,而函数表达式后面可以跟圆括号
 1 (function(a){
 2     console.log(a);   //firebug输出123,使用()运算符
 3 })(123);
 4
 5 (function(a){
 6     console.log(a);   //firebug输出1234,使用()运算符
 7 }(1234));
 8
 9 !function(a){
10     console.log(a);   //firebug输出12345,使用!运算符
11 }(12345);
12
13 +function(a){
14     console.log(a);   //firebug输出123456,使用+运算符
15 }(123456);
16
17 -function(a){
18     console.log(a);   //firebug输出1234567,使用-运算符
19 }(1234567);
20
21 var fn=function(a){
22     console.log(a);   //firebug输出12345678,使用=运算符
23 }(12345678)

==>参考自http://www.jb51.net/article/50967.htm

转载于:https://www.cnblogs.com/NB-JDzhou/p/6932836.html

函数声明、函数表达式、匿名函数、立即执行函数相关推荐

  1. C++的成员函数声明与定义 —— 类外定义成员函数以及inline函数

    作者原文:https://www.cnblogs.com/wuchanming/p/4061654.html 类的成员函数(简称类函数)是函数的一种,它的用法和作用和前面介绍过的函数基本上是一样的,它 ...

  2. 函数①函数声明与表达式

    函数是JavaScript中的一等对象,这意味着可以把函数像其它值一样传递. 一个常见的用法是把匿名函数作为回调函数传递到异步函数中. 函数声明 function foo() {} 上面的方法会在执行 ...

  3. JS基础篇--函数声明与定义,作用域,函数声明与表达式的区别

    Scoping & Hoisting 例: var a = 1;function foo() {if (!a) {var a = 2;}alert(a); };foo(); 上面这段代码在运行 ...

  4. js 和jQuery(自动执行函数)立即执行函数和页面加载完后执行函数写法

    js 立即执行函数的写法. js 立即执行函数只能用于匿名函数,如果声明了函数名是不可以用立即执行的,通常在函数表达式后加一对小括号()用于立即执行 如果想让函数不被调用的情况下,立即自动执行,需要在 ...

  5. scala 函数中嵌套函数_Scala函数–声明,定义,调用和嵌套函数

    scala 函数中嵌套函数 A function is a set of statements combined together to perform a specific task. The co ...

  6. 但并不从包含函数声明的接口派生_C++的虚函数和纯虚函数

    虚函数:类成员函数前面添加virtual关键字,则该函数被称为虚函数. 纯虚函数:在虚函数的基础上,在函数末尾加上 = 0. class Animal {public: virtual void Sh ...

  7. c语言 编程 函数声明,C语言编程开发中的函数声明与定义

    函数功能的使用在许多编程开发语言中都是有不同的使用方法的,而今天我们就一起来了解一下,在C语言编程开发中的函数功能使用与定义. 对函数的"定义"和"声明"不是一 ...

  8. ES6的模块化管理、立即执行函数(IIFE):在函数声明后面立即调用、函数劫持

    1.Node.js简介: (1)Node是什么: A.浏览器内核有两个引擎:渲染引擎(渲染html.css).JavaScript引擎(运行JavaScript代码) B.Node是独立于浏览器的Ja ...

  9. 立即执行函数和函数劫持

    一.ES6的类的继承 1.继承的好处:在父类中定义的属性和方法,子类继承后就可以直接使用. 2.类继承过程中的向上转型:子类对象的类型一定是父类的类型,父类对象的类型不能是子类的类型 (1)typeo ...

  10. JavaScript基础之立即执行函数

    在JavaScript中有时候看到一些很神奇的函数比如下面截图: 这种函数只要浏览器加载的时候会自动运行,而需要调用,前面在闭包的时候也说过这种函数,一般将其称之为:立即执行函数. 立即函数的特征: ...

最新文章

  1. ACMNO.50 完美的代价(主要是不同情况下面的讨论)
  2. [转]FINDSTR正则表达式小结
  3. python散点图图例只显示一个标记点_python – Matplotlib图例:如何分配多个散点值...
  4. PKUSC2018训练日程(4.18~5.30)
  5. 五、python模块以及包
  6. Android SDK中tools详解
  7. java 整型 二进制_Java中如何得到一个整型数的二进制形式(十进制转化成二进制)...
  8. 通达信 移动平均算法_财富趋势,它的产品叫通达信
  9. unity序列帧动画
  10. 17-sendto函数和异步错误
  11. 记一次有惊无险的 JVM 优化经历
  12. iOS 播放系统自带铃声
  13. APICloud介绍
  14. python画xy轴_用python建立两个Y轴的XY曲线图方法
  15. 8、取得比普通员工 的最高薪水还要高的领导人姓名【bjpowernode34道SQL题】
  16. 数据链路层 使用广播(一对多)信道 (图文详解)
  17. C#:Krypton控件使用方法详解(第一讲) —— kryptonButton
  18. 联想m9870T微型计算机,联想Z5s如何指纹解锁拆微信红包 Lenovo Z5s如何使用红包助手...
  19. springMVC中 Controller层为什么可以用map来传输数据
  20. 虚幻四蓝图实战(人物切换汽车控制)

热门文章

  1. 桌面虚拟化在学生教室及机房的应用案例
  2. 母子盗打电话竟为获取游戏Q币
  3. Angularjs1.x 中的 service,factory,provider,constant,value
  4. 链表反转的两种实现方法
  5. Python之PIL库的运用、GIF处理h
  6. JQuery的Ajax技术
  7. HoloLens开发手记- SpectatorView for iOS编译指南
  8. 居民身份证号码组成规则
  9. 【JavaScript】数组
  10. Python进阶(5)_进程与线程之协程、I/O模型