`

IIFE

 
阅读更多

1. 什么是IIFE?

IIFE :Imdiately Invoked Function Expression 立即执行的函数表达式。

例如:

+function ($) {   
  ...
}(window.jQuery);  

 这种写法称为 IIFE。

 

2. 函数表达式和函数声明?

函数表达式(Function Expression):var test = function() {}; 

函数申明(Function Declaration):function test() {};

 

3. 函数声明

函数声明时必须有函数名。

 

function a(){  
   alert('Function declaration');  
}  
a();  

 

 

4. 函数表达式

       函数表达式中的函数可以为匿名函数,也可以有函数名,但是该函数实际上不能直接使用,只能通过表达式左边的变量 a 来调用。例如:

var a = function(){  
      alert('Function expression');  
}  
var b = new a();  

        通过一元操作符+变成了函数表达式。也可以使用 - ~ !等其他一元运算符或者括号,目的是为了引导解析器,指明运算符附近是一个表达式。以下是三种经典方式 :

+function () {   
    ...
};  
 
(function () {  
    ...
});  
 
void function() {   
   ...
};  

 函数表达式通过 末尾的() 来调用并运行。

+function () {   

}();  

(funtion () {  

})();  

 也可以传递参数:

+function (x) {  
     console.log(x);  
}(3);  
  
+function ($) {  
   ...
}(window.jQuery);   

 

5. 使用IIFE的好处

提升性能、有利于压缩、避免冲突、依赖加载。

 

 例如:

!function (win,d) {
	var title = "苏宁二手优品_放心的二手交易市场 –苏宁易购二手优品"; // 旧的页面title
	var newTitle = "10004-null-100039/null-苏宁二手优品/放心的二手交易市场/苏宁易购二手优品-null-null-null";	//新的页面规则
	if (win.sndevice.isApp) { // 易购APP
		if (win.sndevice.isAndroid) { // android
			d.addEventListener("deviceready", function() {
				baseApi.setNewPageTitle(newTitle);
            }, false);
		}
		if (win.sndevice.isIOS) { // IOS
			d.addEventListener("SNNativeClientReady", function() {
				if (win.SNNativeClient.setNewPageTitle) {
					win.SNNativeClient.setNewPageTitle(title, newTitle);
				}
            }, false);
		}	
	}
}(window, document);

 

 

分享到:
评论

相关推荐

    前端开源库-cjs2iife

    "cjs2iife" 是一个这样的开源库,专门用于将 CommonJS 模块转换为 IIFE (Immediately Invoked Function Expression,立即执行函数表达式) 代码。这个转换过程对于前端开发尤其重要,因为 CommonJS 通常用于服务器端...

    js 逆向实战之分离式 webpack 非 IIFE 改写

    JavaScript 逆向实战之分离式 Webpack 非 IIFE 改写详解 在 JavaScript 逆向实战中,了解 Webpack 的工作机制及其模块加载器是非常重要的。下面,我们将详细介绍 Webpack 非 IIFE 改写的实现原理和实战案例。 ...

    前端开源库-gulp-iife

    【前端开源库-gulp-iife】是一个用于前端开发的开源工具,主要功能是将JavaScript代码包裹在立即调用的函数表达式(Immediately Invoked Function Expression, IIFE)中。IIFE是一种常见的JavaScript编程技巧,它...

    rollup-plugin-iife:将ES模块转换为IIFE

    该插件可以将ES模块的输出转换为IIFE。 安装 npm install -D rollup-plugin-iife 用法 import iife from "rollup-plugin-iife" ; export default { input : [ "entry.js" , "entry2.js" ] , output : { dir : ...

    davidBowie-IIFE:封装囊封IIFE

    **IIFE:立即执行函数表达式** 立即执行函数表达式(Immediately Invoked Function Expression,简称IIFE)是JavaScript中一种常见的编程技巧,用于创建独立的作用域,防止变量污染全局环境。这种模式通常用来封装...

    es-iife:将ES模块转换为简单的IIFE

    将ES模块转换为简单的IIFE。 特征 import语句解析为全局变量。 export语句作为全局变量导出。 在test/cases文件夹下还有更多示例。 用法 const { parse } = require ( "acorn" ) ; const { transform } = require...

    详解javascript立即执行函数表达式IIFE

    立即执行函数表达式(IIFE,全拼为Immediately Invoked Function Expression),是JavaScript中一种特殊且非常实用的模式。IIFE的主要作用是创建一个独立的作用域,从而避免全局变量污染,增强代码模块化,以及实现...

    JavaScript函数IIFE使用详解

    JavaScript函数IIFE(立即调用函数表达式)是一种特殊写法,主要用于创建函数作用域,避免变量污染全局命名空间。IIFE是一个表达式,该表达式定义了一个匿名函数,并立即执行该匿名函数。IIFE是一种非常实用的技术,...

    js中let能否完全替代IIFE

    JavaScript中的`let`关键字在ES6(ECMAScript 2015)中引入,带来了块级作用域的概念,这确实让开发者在某些场景下有了替代立即执行函数表达式(IIFE, Immediately Invoked Function Expression)的新选择。...

    gulp-iife:一个Gulp插件,用于在IIFE中包装JavaScript代码

    口香糖一个Gulp插件,用于将JavaScript代码包装在立即调用的函数表达式(IIFE)中。安装$ npm install --save-dev gulp-iife用法var gulp = require ( "gulp" ) ;var iife = require ( "gulp-iife" ) ;gulp . task ...

    babel-plugin-typescript-iife-enum

    babel-plugin-typescript-iife-enum目的TypeScript转换为IIFE中的包装器枚举。目的目前,TypeScript将从enum Test { Key = 1} 到var Test ;( function ( Test ) { Test [ Test [ "Key" ] = 1 ] = "Key" ;} ) ( Test ...

    Logit:再次尝试 javascript,试图让 IIFE 工作

    在JavaScript中,立即调用的函数表达式(Immediately Invoked Function Expression,简称IIFE)是一种常见且重要的编程模式,用于封装代码,避免变量污染全局作用域。IIFE的主要目的是在执行时立即运行一个函数,并...

    kudiwatch-budgetapp:使用香草js(IIFE)

    标题"Kudiwatch Budget App: 使用香草JS(IIFE)"表明这是一个关于个人财务管理应用——Kudiwatch Budget App的项目,它主要使用了原生JavaScript(也称为香草JS)的一个特定特性:立即执行函数表达式(Immediately ...

    详解JavaScript的闭包、IIFE、apply、函数与对象

    闭包、立即执行函数表达式(IIFE)、apply方法以及函数和对象的概念是JavaScript中的核心概念。理解这些概念对开发高质量的前端应用至关重要。接下来,将详细介绍这些知识点。 一、闭包(Closure) 闭包是...

    broccoli-iife:西兰花的 IIFE(立即调用函数表达式)过滤器

    西兰花 Broccoli 过滤器将文件包装在(IIFE) 中。 安装 npm install --save broccoli-iife 用法 var iife = require ( 'broccoli-iife' ) ; var iifeTree = iife ( sourceTree ) ;

    karma-wrap-iife-preprocessor

    因果报应包装的预处理程序Karma预处理程序将文件内容包装在具有完整源映射支持的IIFE中安装npm install --save karma-wrap-iife-preprocessor用法学分执照国际学习中心

    imagePreview:在网页上预览图像,模仿ios的图像预览软件。旋转,缩放等。 (仿ios移动端图片预览插件支持旋转,放大(双指双击),舒适和流畅是最大的追求)

    release/image-preview目录是为不同的模块系统构建的,包括AMD,CommonJS,ES6,UMD,IIFE。 您可以选择一种适合您的项目。 例 。 进口 脚本(在iife或umd模块系统中,使用名称空间imagePreviewModule): < ...

    javascript 中(function{})这种写法什么意思?.docx

    ### JavaScript中的立即执行函数表达式 (IIFE) #### 基础概念 在JavaScript中,`(function(){})()` 这种写法被称为**立即执行函数表达式**(Immediately Invoked Function Expression,简称IIFE)。它是一种特殊的...

Global site tag (gtag.js) - Google Analytics