立即执行函数

一般状况下, 我们需要调用一个JavaScript 函数, 基本的状况都是先定义, 然后再调用。

如果不需要显示调用函数, 让这个函数在定义的时候就执行的话,就可以用到立即执行函数。

立即执行函数:此函数没有声明,在一次执行过后即释放,适合做初始化工作。

立即执行函数有以下常用的写法:

第一种:

(function (){alert("Hello World!!");
}());

第二种:

(function (){alert("Hello World!!");
})();

W3C建议的是第一种

要理解立即执行函数,需要先理解一些函数的基本概念。

函数声明,函数表达式,匿名函数。

1.函数声明:

function test(a,b){// function body
}

使用function关键字声明一个函数,再指定一个函数名 (在函数声明中,你必须给函数起一个名字) ,叫函数声明。

函数表达式:

var test = function (){// function body
}

只有函数表达式才能被执行符号执行
在function前面加!、+、 -甚至是逗号等到都可以起到函数定义后立即执行的效果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式,消除了JavaScript引擎识别函数表达式和函数声明的歧义,告诉JavaScript引擎这是一个函数表达式,不是函数声明,可以在后面加括号,并立即执行函数的代码。
加括号是最安全的做法,因为!、+、-等运算符还会和函数的返回值进行运算,有时造成不必要的麻烦。

立即执行函数的作用:
JavaScript中没用私有作用域的概念,如果在多人开发的项目上,你在全局或局部作用域中声明了一些变量,可能会被其他人不小心用同名的变量给覆盖掉,根据JavaScript函数作用域链的特性,可以使用这种技术可以模仿一个私有作用域,用匿名函数作为一个"容器",“容器"内部可以访问外部的变量,而外部环境不能访问"容器"内部的变量,所以( function(){…} )()内部定义的变量不会和外部的变量发生冲突,俗称"匿名包裹器"或"命名空间”。

JavaScript立即执行函数相关推荐

  1. JavaScript立即执行函数报错--立即执行函数原理分析

    JavaScript立即执行函数报错 1.'()'在JavaScript环境中有提升运算符优先级和执行函数的作用如果直接在JavaScript环境中执行'()',环境会报出语法错误提示. 2.'()' ...

  2. JavaScript自执行函数,自执行函数是什么,存在的意义?

    JavaScript自执行函数 1.自执行函数是什么 2.自执行函数存在的意义 2.1封装 3.自执行函数两种常见的的写法 3.1自执行函数的第一种写法 3.2自执行函数的第二种写法 4.自执行函数的 ...

  3. JavaScript 自执行函数剖析

    回想一下,我们平时写的一些具名函数(也就是区别于匿名函数的函数),如下面一个例子: 1 function sayHello(){ 2 console.log("hello,我是林丽君&quo ...

  4. Javascript 立即执行函数

    http://weizhifeng.net/immediately-invoked-function-expression.html var f1 = function() {var res = [] ...

  5. Javascript 自执行函数

    前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行. 在详细了解这个之前,我们来谈了解一下"自执行"这个叫法,本文对这个功能的叫 ...

  6. JavaScript 立即执行函数的两种写法

    (function(str){console.log(str+'欢迎你~');})('行步至春深');(function(str) {console.log(str+'欢迎你~');}('行路易知难' ...

  7. JavaScript 自执行函数和 jQuery扩展方法

    我们通常将JS代码写在一个单独的JS文件中,然后在页面中引入该文件.但是,有时候引入后会碰到变量名或函数名与其它JS代码冲突的问题.那么如何解决这个问题呢?作用域隔离.在JS中,作用域是通过函数来划分 ...

  8. javascript自执行函数

    概述 自执行函数又被称为立即调用函数,顾名思义,就是可以函数声明后可以立即被执行,我们在读常用js库(如jquery)源码时,经常会发现自执行函数的身影,下面说下我的理解. 写法 自执行函数有两种写法 ...

  9. JavaScript立即执行函数学习

    1.新建对象,方法内变量作用域理解错误 var md1 = {count: 0,add: function () {count++;},sub: function () {count--;},show ...

  10. JavaScript 自执行函数(闭包)

    1. 全局污染 在变量声明的时候有一个规则:重复声明无效 var num = 123; var num = 'abc'; 重复声明的代码不会报任何错误,但是其声明特征就没有了,会转换成普通赋值语句 故 ...

最新文章

  1. html 简单机器人对话页面,简单的js聊天机器人框架BotUI
  2. linux 的ss看进程号,linux ss命令详解
  3. 杭电1284钱币兑换问题—背包dp/母函数(java)
  4. TypeScript的书写规范(TSLint)配置修改
  5. 2019标杆案例复盘(上):数字化——金融政企篇
  6. cookies默认过期时间_「图」Chrome Canary新版已启动“增强版cookies控制”预览测试...
  7. Google Authenticator加强ssh安全
  8. numpy基础笔记01
  9. 计算机视觉CV中的论文写作英语(by Youki)
  10. Win XP局域网设置及其无法访问解决方案
  11. JavaScript对滚动条的操作
  12. Coursera学科分类爬虫实例介绍
  13. Android dropbox介绍
  14. 6-2 折半查找的实现 (10 分)
  15. 三款截图软件:Snipaste+FastStone-Capture+FireShot
  16. Kotlin版注解处理器Annotation Processor
  17. 矩阵分析与应用(二)——矩阵微分
  18. Linux ps命令简介
  19. IOS开发——获取局域网IP
  20. 计算机图形学--扫描线填充算法

热门文章

  1. 安卓虚拟机_安卓虚拟机Pro解锁付费版 自带root权限 可运行xp等框架
  2. 听说你还在纠结自己没访问量?成不了“博客专家”?
  3. python画图函数
  4. 本机号码一键登录原理与应用(荣耀典藏版)
  5. java 变量 英文_java 变量(翻译自Java Tutorials)
  6. 计算机社团感恩节免费维修周策划书,感恩节活动策划以及活动方案!
  7. FreeTextBox编辑框遇到的问题
  8. 货币等额换算_换算单位和货币的最佳免费程序和网站
  9. OOC-用C实现面向对象
  10. mysql连接被拒绝 密码也对_MYSQL密码正确,却依然显示拒绝连接