JavaScript立即执行函数
立即执行函数
一般状况下, 我们需要调用一个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立即执行函数相关推荐
- JavaScript立即执行函数报错--立即执行函数原理分析
JavaScript立即执行函数报错 1.'()'在JavaScript环境中有提升运算符优先级和执行函数的作用如果直接在JavaScript环境中执行'()',环境会报出语法错误提示. 2.'()' ...
- JavaScript自执行函数,自执行函数是什么,存在的意义?
JavaScript自执行函数 1.自执行函数是什么 2.自执行函数存在的意义 2.1封装 3.自执行函数两种常见的的写法 3.1自执行函数的第一种写法 3.2自执行函数的第二种写法 4.自执行函数的 ...
- JavaScript 自执行函数剖析
回想一下,我们平时写的一些具名函数(也就是区别于匿名函数的函数),如下面一个例子: 1 function sayHello(){ 2 console.log("hello,我是林丽君&quo ...
- Javascript 立即执行函数
http://weizhifeng.net/immediately-invoked-function-expression.html var f1 = function() {var res = [] ...
- Javascript 自执行函数
前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行. 在详细了解这个之前,我们来谈了解一下"自执行"这个叫法,本文对这个功能的叫 ...
- JavaScript 立即执行函数的两种写法
(function(str){console.log(str+'欢迎你~');})('行步至春深');(function(str) {console.log(str+'欢迎你~');}('行路易知难' ...
- JavaScript 自执行函数和 jQuery扩展方法
我们通常将JS代码写在一个单独的JS文件中,然后在页面中引入该文件.但是,有时候引入后会碰到变量名或函数名与其它JS代码冲突的问题.那么如何解决这个问题呢?作用域隔离.在JS中,作用域是通过函数来划分 ...
- javascript自执行函数
概述 自执行函数又被称为立即调用函数,顾名思义,就是可以函数声明后可以立即被执行,我们在读常用js库(如jquery)源码时,经常会发现自执行函数的身影,下面说下我的理解. 写法 自执行函数有两种写法 ...
- JavaScript立即执行函数学习
1.新建对象,方法内变量作用域理解错误 var md1 = {count: 0,add: function () {count++;},sub: function () {count--;},show ...
- JavaScript 自执行函数(闭包)
1. 全局污染 在变量声明的时候有一个规则:重复声明无效 var num = 123; var num = 'abc'; 重复声明的代码不会报任何错误,但是其声明特征就没有了,会转换成普通赋值语句 故 ...
最新文章
- html 简单机器人对话页面,简单的js聊天机器人框架BotUI
- linux 的ss看进程号,linux ss命令详解
- 杭电1284钱币兑换问题—背包dp/母函数(java)
- TypeScript的书写规范(TSLint)配置修改
- 2019标杆案例复盘(上):数字化——金融政企篇
- cookies默认过期时间_「图」Chrome Canary新版已启动“增强版cookies控制”预览测试...
- Google Authenticator加强ssh安全
- numpy基础笔记01
- 计算机视觉CV中的论文写作英语(by Youki)
- Win XP局域网设置及其无法访问解决方案
- JavaScript对滚动条的操作
- Coursera学科分类爬虫实例介绍
- Android dropbox介绍
- 6-2 折半查找的实现 (10 分)
- 三款截图软件:Snipaste+FastStone-Capture+FireShot
- Kotlin版注解处理器Annotation Processor
- 矩阵分析与应用(二)——矩阵微分
- Linux ps命令简介
- IOS开发——获取局域网IP
- 计算机图形学--扫描线填充算法
热门文章
- 安卓虚拟机_安卓虚拟机Pro解锁付费版 自带root权限 可运行xp等框架
- 听说你还在纠结自己没访问量?成不了“博客专家”?
- python画图函数
- 本机号码一键登录原理与应用(荣耀典藏版)
- java 变量 英文_java 变量(翻译自Java Tutorials)
- 计算机社团感恩节免费维修周策划书,感恩节活动策划以及活动方案!
- FreeTextBox编辑框遇到的问题
- 货币等额换算_换算单位和货币的最佳免费程序和网站
- OOC-用C实现面向对象
- mysql连接被拒绝 密码也对_MYSQL密码正确,却依然显示拒绝连接