javascript中 (function(){})();如何理解?
javascript中 (function(){})();如何理解?
javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。
(function(){})是一个标准的函数定义,但是没有复制给任何变量。所以是没有名字的函数,叫匿名函数。没有名字就无法像普通函数那样随时随地调用了,所以在他定义完成后就马上调用他,后面的括号()是运行这个函数的意思。
扩展资料
函数声明:使用function声明函数,并指定函数名。
function setFn() { // coding }
函数表达式:使用function声明函数,但未指定函数名,将匿名函数赋予一个变量。
var setFn = function() { // coding}
匿名函数:使用function关键字声明函数,但未指定函数名。匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
function() { // coding}
javascript中function前面加(/!/+/-/~的含义
自执行匿名函数 常见格式:(function(){ /* code */ })(参数);
- 作用:可以用它创建命名空间,只要把自己的所有代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数后变量就成为全局)。各JavaScript库的代码也基本上是这种组织形式。
- 执行函数的作用主要为匿名和自动执行,代码在被解释时就已经在运行了。
【JS】 +function(){} 作用
+function(){}();
这里的加号,可以替换成 ~ , * , + , - , ! 等其他一元操作符,
其效果相当于:
(function() { console.log(“Foo!”); })();
// or
(function() { console.log(“Foo!”); }());
如果没有这个加号的话,解析器会认为function是一个函数声明的开始,而后面()将会导致语法错误。
在function前面加上+号时,就变成了一个函数表达式,而函数表达式后面又添加了一个()就变成了一个立即执行的函数了。
转载于:https://www.cnblogs.com/yangai/p/11017375.html
javascript中 (function(){})();如何理解?相关推荐
- 谈谈JavaScript中function多重理解
JavaScript 中的 function 有多重意义.它可能是一个构造器(constructor),承担起对象模板的作用: 可能是对象的方法(method),负责向对象发送消息.还可能是函数,没错 ...
- 如何用mshtml获得Javascript中function的返回值[mshtml]
marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/ ...
- javascript中function详解
目录 概念 定义 函数内部 this arguments 绑定函数作用域 Function.prototype.bind Function.prototype.applay Function.prot ...
- Javascript中你必须理解的执行上下文和调用栈
执行上下文在 JavaScript 是非常重要的基础知识,想要理解 JavaScript 的执行过程,执行上下文是你必须要掌握的知识.否则只能是知其然不知其所以然. 理解执行上下文有什么好处呢? 它可 ...
- javascript中的面向对象理解(一)
一.注意:提到"面向对象"这一概念,众所周知,javascript中的面向对象思想与其他的编程语言(例如:PHP.Java等)是有着很大区别的.因此,我们先复习下,传统意义上,面向 ...
- 关于JavaScript中Function Declaration与Function Expression的进一步说明
区分变量与对象 在讨论函数声明与函数表达式之前,我觉得有必要明确一下JavaScript中变量及对象的区别.具体来说: JavaScript中的对象(Object)是一个实体,而变量(Variable ...
- 传递function_JS中!function(){}()的理解
这种写法,是一种立即执行函数的写法,即IIFE等设计模式.这种函数在函数定义的地方就直接执行了. 理解IIFE设计模式的关键是要认识到,在ES6之前,JavaScript仅具有函数作用域(因此缺少块作 ...
- javascript 中的nodeList理解
NodeList是一中类数组对象,用于保存一组有序的节点 可以通过方括号来访问NodeList的值,他有item()方法与length属性. 他并不是Array的实列,没有数组对象的方法. 如何拿到n ...
- javascript中bind函数理解
bind函数会创建一个新的函数体: bind函数第一个参数是改变this的指向,第二个以及之后的每个参数都是传进去原来的函数参数: bind函数是在Function原型上的: bind 函数可以用来递 ...
最新文章
- Relay IR表示
- css3 box-sizing:border-box 实现div一行多列
- 人生第一个快速幂的题(HDU - 1097--A hard puzzle )
- 利用JDK工具进行系统性能监测
- linux shell if 参数
- .NET EFCore之增删改查
- 参加动画电影《魔比斯环》首映
- mysql 启动_mysql安装、启动
- 自定义控件-----输入框
- lof、etf、qdii基金区别
- python---python实现快速排序
- 2022年计算机软件水平考试程序员(初级)练习题及答案
- 软件体系结构期末复习题
- 脑科学磁共振成像(MRI)初学者必看——功能脑网络、小世界网络、FDR校正、脑电信号频率变换、模板、假设检验、广义线性模型、独立成分分析、影像组学、任务态和静息态方法汇总
- 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解
- Excel操作-多条件筛选
- 天玑9000和高通骁龙870哪个好
- 机智云自助开发平台,低代码快速开发新系统
- 创建一个Rectangle类。 添加两个属性width、height,分别表示宽度和高度,添加计算矩形的周长和面积的方法。测试输出一个矩形的周长和面积。
- 什么是HSS?HSS有什么主要功能?HSS与HLR的区别是什么