function fnName(){xxxx};        // 函数声明:使用function关键字声明一个函数,在指定一个函数名。

//例如:(正常,因为 提升 了函数声明,函数调用可以在函数声明之前)
fnName();
function fnName(){
alert('Hello World');
} var fnName = function(){xxxx}; //函数表达式:使用function关键字声明一个函数,但是未给函数命名,最后将匿名函数赋予给一个变量。 //例如1:(报错,变量fnName还未保存对函数的引用,函数调用必须在函数表达式之后)
fnName();
var fnName = function(){
alert('Hello World');
}
//例如2:(正常,函数表达式后面加括号,当JavaScript引擎解析到此处时能立即调用函数)
var fnName = function(){
alert('Hello World');
}();
//例如3:(报错,JavaScript引擎只解析函数声明,忽略后面的括号,函数声明不会被调用)
function fnName(){
alert('Hello World');
}(); function(){xxxx}; //匿名函数:使用function关键字声明一个函数,但是未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,
//匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或者创建闭包等等。 //例如:(语法错误,语法错误,虽然匿名函数属于函数表达式,但是未进行赋值操作,所以javascript引擎将开头的function关键字当做函数声明,报错:要求需要一个函数名)
function(){
alert('Hello World');
}();

先来给大家看两个小例子:(1)

var foo = 1;
  (function(){
console.log(foo);
var foo = 2;
console.log(foo);
})();

输出:undefined  和   2

(2)

var foo = 'Hello';
  (function(){
  console.log(foo);
  var bar = 'world';
  console.log(foo + bar);
})();
console.log(foo + bar);

如果我的内容对你有帮助,欢迎打赏

最新文章

  1. 【转】ZigBee终端入网方式深入分析
  2. java字符串拼接与性能
  3. java server
  4. C语言 百炼成钢12
  5. 淘宝(阿里百川)手机客户端开发日记第三篇 SlidingPaneLayout实现侧滑菜单
  6. python匿名函数(lambda)
  7. Android WebView保存Cookie登录
  8. bzoj 3594 [Scoi2014]方伯伯的玉米田(DP+二维BIT)
  9. ORACLE中CONSTRAINT的四对属性
  10. static 内部类
  11. ActionBar官方教程(11)自定义ActionBar的样式(含重要的样式属性表及练习示例)
  12. spring boot 实践
  13. cf C. Arithmetic Progression
  14. 【转】FIO使用指南
  15. 运行期以索引获取tuple元素-C++14(原创)
  16. java 调用 api接口
  17. WPF仿网易云音乐系列(序)
  18. Python之函数第三篇
  19. NLP第9章 NLP 中用到的机器学习算法——基于统计学(文本分类和文本聚类)
  20. IE浏览器Web自动化

热门文章

  1. CentOS 7 调整 home分区 扩大 root分区
  2. [转] 移动平台Html5的viewport使用经验
  3. 如何在eclipse中添加android ADT(转)
  4. myeclipse10安装了activiti插件后创建BPMN 文件时报错,
  5. C++:初始化列表
  6. SQLite3学习笔记----创建数据库的两种方式
  7. Qt Read and Write Csv File
  8. Oracle GoldenGate 三、加密
  9. .NET基础 (11)类型的基类System.Object
  10. Appium 之处理首次启动手机App时的系统权限弹框