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" 是一个这样的开源库,专门用于将 CommonJS 模块转换为 IIFE (Immediately Invoked Function Expression,立即执行函数表达式) 代码。这个转换过程对于前端开发尤其重要,因为 CommonJS 通常用于服务器端...
JavaScript 逆向实战之分离式 Webpack 非 IIFE 改写详解 在 JavaScript 逆向实战中,了解 Webpack 的工作机制及其模块加载器是非常重要的。下面,我们将详细介绍 Webpack 非 IIFE 改写的实现原理和实战案例。 ...
【前端开源库-gulp-iife】是一个用于前端开发的开源工具,主要功能是将JavaScript代码包裹在立即调用的函数表达式(Immediately Invoked Function Expression, IIFE)中。IIFE是一种常见的JavaScript编程技巧,它...
该插件可以将ES模块的输出转换为IIFE。 安装 npm install -D rollup-plugin-iife 用法 import iife from "rollup-plugin-iife" ; export default { input : [ "entry.js" , "entry2.js" ] , output : { dir : ...
**IIFE:立即执行函数表达式** 立即执行函数表达式(Immediately Invoked Function Expression,简称IIFE)是JavaScript中一种常见的编程技巧,用于创建独立的作用域,防止变量污染全局环境。这种模式通常用来封装...
将ES模块转换为简单的IIFE。 特征 import语句解析为全局变量。 export语句作为全局变量导出。 在test/cases文件夹下还有更多示例。 用法 const { parse } = require ( "acorn" ) ; const { transform } = require...
立即执行函数表达式(IIFE,全拼为Immediately Invoked Function Expression),是JavaScript中一种特殊且非常实用的模式。IIFE的主要作用是创建一个独立的作用域,从而避免全局变量污染,增强代码模块化,以及实现...
JavaScript函数IIFE(立即调用函数表达式)是一种特殊写法,主要用于创建函数作用域,避免变量污染全局命名空间。IIFE是一个表达式,该表达式定义了一个匿名函数,并立即执行该匿名函数。IIFE是一种非常实用的技术,...
JavaScript中的`let`关键字在ES6(ECMAScript 2015)中引入,带来了块级作用域的概念,这确实让开发者在某些场景下有了替代立即执行函数表达式(IIFE, Immediately Invoked Function Expression)的新选择。...
口香糖一个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目的TypeScript转换为IIFE中的包装器枚举。目的目前,TypeScript将从enum Test { Key = 1} 到var Test ;( function ( Test ) { Test [ Test [ "Key" ] = 1 ] = "Key" ;} ) ( Test ...
在JavaScript中,立即调用的函数表达式(Immediately Invoked Function Expression,简称IIFE)是一种常见且重要的编程模式,用于封装代码,避免变量污染全局作用域。IIFE的主要目的是在执行时立即运行一个函数,并...
标题"Kudiwatch Budget App: 使用香草JS(IIFE)"表明这是一个关于个人财务管理应用——Kudiwatch Budget App的项目,它主要使用了原生JavaScript(也称为香草JS)的一个特定特性:立即执行函数表达式(Immediately ...
闭包、立即执行函数表达式(IIFE)、apply方法以及函数和对象的概念是JavaScript中的核心概念。理解这些概念对开发高质量的前端应用至关重要。接下来,将详细介绍这些知识点。 一、闭包(Closure) 闭包是...
西兰花 Broccoli 过滤器将文件包装在(IIFE) 中。 安装 npm install --save broccoli-iife 用法 var iife = require ( 'broccoli-iife' ) ; var iifeTree = iife ( sourceTree ) ;
因果报应包装的预处理程序Karma预处理程序将文件内容包装在具有完整源映射支持的IIFE中安装npm install --save karma-wrap-iife-preprocessor用法学分执照国际学习中心
release/image-preview目录是为不同的模块系统构建的,包括AMD,CommonJS,ES6,UMD,IIFE。 您可以选择一种适合您的项目。 例 。 进口 脚本(在iife或umd模块系统中,使用名称空间imagePreviewModule): < ...
### JavaScript中的立即执行函数表达式 (IIFE) #### 基础概念 在JavaScript中,`(function(){})()` 这种写法被称为**立即执行函数表达式**(Immediately Invoked Function Expression,简称IIFE)。它是一种特殊的...