+function (){}
-function (){}
!function (){}
~function (){}
(function (){})()

这种写法可以保证匿名函数立即运行且运行一次

传入的 window 对象从全局变成了局部对象 优点有

1. 运行更快了
2. 可以随意改名 比如 a, 这样便于压缩
3. 可以传入其他库而不导致冲突

举例子
(function ($, w, d, undefined){

$(document).addClass('test');

})(jQuery, window, document);

这样的情况下 JQ 可以无痛使用 也不需要使用 noConflict 方法避免冲突

至于传递 undefined 是因为 ES3 时代这个玩意儿是可以被修改的……真的有人会去做比如 undefined = true 这样的事情 所以说额外定义一个真正的 undefined 可以保证匿名函数内部的 undefined 是真正的 undefined

JavaScript文件中; !function (win, undefined) {}(window);的意义的更多相关文章

  1. JavaScript文件中调用AngularJS内部方法或改变$scope变量

    需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定: 首先获取AngularJS application: 方法一:通过controll ...

  2. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

  3. 在JavaScript文件中读取properties文件的方法

    假设有JavaScript文件叫做:readproperties.js,这个文件需要读取config.properties这个配置文件,步骤如下: 1.  下载插件jquery.i18n.proper ...

  4. C# winForm中调用javascript文件中的方法

    目前有很多的SNS社区或类SNS的网站,例如开心.51.校内等,但是发现大多数社区在邀请好友的时候都没有提供对QQ邮箱或者QQ空间好友列表获取的功能,不过似乎海内支持,但是网上相关QQ的文章还不是很多 ...

  5. Javascript文件中的控制器I

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  6. Javascript文件中的控制器II

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  7. Eclipse中javascript文件 clg 变为console.log();

    Eclipse中javascript文件 clg 变为console.log(); window>preferance>JavaScript>Editor>Templates ...

  8. 血淋淋的事实告诉你:你为什么不应该在JS文件中保存敏感信息

    在JavaScript文件中存储敏感数据,不仅是一种错误的实践方式,而且还是一种非常危险的行为,长期以来大家都知道这一点. 而原因也非常简单,我们可以假设你为你的用户动态生成了一个包含API密钥的Ja ...

  9. js文件中获取${pageContext.request.contextPath}

    一般从 JSP文件中,可以直接使用 ${pageContext.request.contextPath}非常方便的获得当前页面的路径,用来处理被 Apache2代理之后出现 URL变化的问题,比如增加 ...

随机推荐

  1. windows上的QT发布

    1. 生成exe 1.1  release 条件下编译 1.2 将QT bin路径加入到path中去 1.3 将1.1生成的exe拷贝到单独的目录,然后cmd到这个目录,使用windeployqt编译 ...

  2. Python变量类型及变量

    python是解释性语言 什么是解释性语言 就相当于你去饭店,你点了10道菜,他做好1道给你上1道.解释一行,执行一行.速度上不如编译性语言快. 什么是编译性语言 就相当于去饭店吃饭,你点了10道菜, ...

  3. const定义的并非是常量,而是常量索引

    我第一次看const的时候,记忆中对const的定义是,定义常量. 后经过研究,定义的并非常量,而是常量索引. 有时候会遇到使用const定义数组的情况 const arr = [] arr.push ...

  4. GUI学习之二十八—QMessageBox

    今天来学习下QMessageBox. QMessageBox主要用来通知用户或者请求用户提问和接收应答一个模态对话框. 一.对话框的构成 图标是有标准图标的,可以直接调用. 我们声明的消息框,初始状态 ...

  5. Python核心技术与实战——七|自定义函数

    我们前面用的代码都是比较简单的脚本,而实际工作中是没有人把整个一个功能从头写到尾按顺序堆到一块的.一个规范的值得借鉴的Python程序,除非代码量很少(10行20行左右)应该由多个函数组成,这样的代码 ...

  6. HTML5 入门基础

    HTML5概述HTML5於2004年被WHATWG(网页超文本技术工作小组)提出,於2007年被W3C接纳.在2008年1月22日,第一份正式草案已公布.WHATWG表示该规范是目前正在进行的工作,仍 ...

  7. 初学oracle第三天

    体系结构 Oracle 采取的是 Client/Server 架构. 3.1 Client   3.1.1 Sqlplus 这是一个轻量级的功能强大的客户端, 是 dba 必须掌握的工具. 我们可以配 ...

  8. C++ GUI Qt4学习笔记05

    C++ GUI Qt4学习笔记05   qtc++正则表达式 QIntValidator           --  只让用户输入整数 QDoubleValidator     --  只让用户输入浮 ...

  9. 047:创建和映射ORM模型

    创建ORM模型: ORM 模型一般都是放在 app 的 models.py 文件中.每个 app 都可以拥有自己的模型.并且如果这个模型想要映射到数据库中,那么这个 app 必须要放在 setting ...

  10. 3D打印格式STL

    STL格式及其转换 近期接触了3D打印的一些东西,也制作了一个vrml转stl的插件,对该领域多了一些认识. 目前尚没有打印机直接支持stl.obj等格式,在打印之前需使用厂家提供的软件将stl等格式 ...