(function a(){}) (命名函数表达式)会返回这个函数(不会执行),但是在括号外面无法调用该函数,需要一个变量接收这个函数,var fun = (function a(){}),一般这个用在递归上,比如

 var fact = (function f(num){
if(num === 1 )
return 1;
else
return num * f(num - 1);
})

1.function a(){}(函数声明)返回undefined(不会执行),仅仅是函数声明(声明提前)

2.var res = function a(){}() (函数表达式),立即执行该函数,必须使用一个变量接收返回值,否则报错。

3.(function a(){})() (函数表达式),立即执行该函数,不必须使用变量接收。

示例代码:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
//1.函数声明,不会执行。
function a() {
alert("函数a");
} //2.函数表达式,立即执行该函数,必须使用一个变量接收返回值,否则报错。
var res = function b() {
alert("函数b");;
}(); //3.函数表达式,立即执行该函数,不必须使用变量接收。
(function c() {
alert("函数c")
})();
</script>
</head>
<body>
</body>
</html>

总结

以上不同结果出现的原因是因为函数表达式和函数声明的区别。

最新文章

  1. MyBatis学习总结(五)——实现关联表查询(转载)
  2. Mac 下用IDEA时maven,ant打包 (mr 入库hbase)
  3. 在IOS输入框中 键盘上显示“搜索”
  4. 演练:使用Xamarin.Forms开发产品介绍性质的应用(VB版)
  5. CreateJS第0章- Canvas基础
  6. (转)iOS7界面设计规范(5) - UI基础 - 导航
  7. SEL数据类型,@selector的用法,以及调用SEL
  8. 从async await 报错Unexpected identifier 谈谈对上下文的理解
  9. Unity UGUI实现图文混排
  10. django(一)验证码
  11. XML文件处理
  12. C# 全文搜索Lucene
  13. 《DSP using MATLAB》Problem 3.18
  14. php模块组成
  15. java第八天
  16. python模块之PIL模块(生成随机验证码图片)
  17. 生产者消费者JAVA实现
  18. MySQL 根据身份证查找年龄段
  19. [C++] the pointer array &amp; the array&#39;s pointer
  20. libsvm 用在 婚介数据集中 预测 用户配对

热门文章

  1. 进阶篇:3)面向制造的设计DFM
  2. [转] crontab命令
  3. PIE SDK Command&amp;&amp;Tool工具命令一览表
  4. STM32的GPIO工作原理 | 附电路图详细分析
  5. Train Problem II(卡特兰数 组合数学)
  6. Oracle 通过子查询批量添加、修改表数据
  7. MySQL修改提示符
  8. selenium+Python(定位 单选、复选框,多层定位)
  9. hibernate 学习笔记2
  10. ckeditor添加代码插入功能及高亮显示(插件)