JavaScript小知识:什么是IIFE?
IIFE,全称为:Immediately Invoked Function Expression,在JavaScript编程中,是:立即调用函数表达式。
型:
(function () {statements
})();
这是一个被称为 自执行匿名函数 的设计模式,主要包含两部分。第一部分是包围在 圆括号运算符 () 里的一个匿名函数,这个匿名函数拥有独立的词法作用域。这不仅避免了外界访问此 IIFE 中的变量,而且又不会污染全局作用域。
第二部分再一次使用 () 创建了一个立即执行函数表达式,JavaScript 引擎到此将直接执行函数。
示例
当函数变成立即执行的函数表达式时,表达式中的变量不能从外部访问。
(function () {var name = "Barry";
})();
// 无法从外部访问变量 name
name // 抛出错误:"Uncaught ReferenceError: name is not defined"
将 IIFE 分配给一个变量,不是存储 IIFE 本身,而是存储 IIFE 执行后返回的结果。
var result = (function () {var name = "Barry";return name;
})();
// IIFE 执行后返回的结果:
result; // "Barry"
IIEF表达式可以进行混淆,如使用JShaman对上方代码进行加密,得到如下代码:
var _0x19bd = ['Barry'];
var _0x5759 = function (_0x19bd17, _0x5759c3) {_0x19bd17 = _0x19bd17 - 0x0;var _0x2b266b = _0x19bd[_0x19bd17];return _0x2b266b;
};
var result = function () {var _0x1b69fd = function (_0x52c199, _0x588ee1, _0x48bd78, _0x3df0b3, _0x459047) {return _0x5759(_0x459047 - -0x250, _0x3df0b3);};var _0x4a6091 = _0x1b69fd(-0x24f, -0x24f, -0x250, -0x251, -0x250);return _0x4a6091;
}();
混淆的作用是:使代码难以被阅读,用于保护重要代码。上述代码混淆后,运行也依然正常。
JavaScript小知识:什么是IIFE?相关推荐
- JavaScript面试小知识
JavaScript小知识: 数据类型: 原始(基本.简单)数据类型:5种:number string Boolean undefined 空(null,特殊含义,一般不直接写出来) 引用(复杂)数据 ...
- JavaScript高级知识汇总(高级篇)
目录 JavaScript高级知识总结(高级篇) 一.深入基础 1.1数据类型 1.2数据变量与内存 1.3对象 1.4函数 回调函数 1.5 IIFE 1.6函数中的this 二.函数高级 2.1原 ...
- javascript date php date,JavaScript Date 知识浅析
Date函数 new Date() Date 对象会自动把当前日期和时间保存为其初始值. date.getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31). date.getDa ...
- JavaScript 基础知识 - DOM篇(二)
7. 节点操作 7.1 节点的属性 节点分类: 标签节点 文本节点 属性节点 注释节点 节点常用的属性: nodeType:节点的类型 nodeName:节点名称 nodeValue:节点值 常见的节 ...
- JavaScript基础知识与脚本语言总结
1 Aptana插件安装 1.Aptana插件安装 <1>Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE. <2>它的特点包括: J ...
- JavaScript小项目之BMI值计算
项目题目: 实现BMI值计算器 项目作用: 复习JavaScript课程知识,学习DOM基础知识,熟悉document对象的使用,实现简单的BMI计算器页面. JavaScript小项目系列 前言 一 ...
- JavaScript 基础知识 - 入门篇(二)
11. 函数 11.1 函数的基础知识 为什么会有函数? 在写代码的时候,有一些常用的代码需要书写很多次,如果直接复制粘贴的话,会造成大量的代码冗余: 函数可以封装一段重复的javascript代码, ...
- JavaScript 基础知识
JavaScript 基础知识 文章目录 JavaScript 基础知识 @[toc] 一.JS的基本语法与结构 1.1 JavaScript 用法 1.2 JavaScript 输出 1.3 Jav ...
- vue项目中的小知识--快捷键-vue插件版本号--vscode插件等
vue项目中的小知识--快捷键等 0 版本号 1 代码片段的获取: 2 vscode中一些常用扩展 3 进入另一个文件夹,返回上一级 4查看Vue的版本和Vue/CLI的版本 5 --save-dev ...
最新文章
- 达夫设备(Duff‘s Device)
- 北斗导航 | 监测和减轻空间天气对GNSS应用的影响
- 【Linux系统编程】进程间通信之命名管道
- 刷网络课_网络营销实践心得—刘荟萌
- Java面试技巧—如何自我介绍
- ibm ilog mysql_开源纯C日志函数库iLOG3快速入门(八、如果你喜欢简单日志函数甚于日志函数库)...
- C语言实现矩阵的乘法
- 固体火箭发动机三维装药逆向内弹道计算
- 计算机网络的分类3:按网络的工作方式分类,分为集中式网络、分布式网络
- 高位在前低位在后是啥意思_精喹禾灵原药报价在25.5万元/吨高位,草甘膦原药保持2.5万元/吨...
- 搭建网站服务器必须开443端口,HTTPS端口必须一定要443吗?
- 200行代码实现N子棋(以五子棋为例)
- Microsoft Word 论文编排技巧
- 如何在腾讯云快速注册域名
- CNS服务器(配合百度直连)游戏修复专栏
- oracle 11g dul,学习笔记:Oracle dul数据挖掘 导出Oracle11G数据文件坏块中表中
- Word中插入多张图片/论文图片排版的方法
- 微信公众号学习与开发过程
- PySpark RDD操作
- FVCOM 环境基础配置(1) intel编译器 下载与安装