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(){})();如何理解?相关推荐

  1. 谈谈JavaScript中function多重理解

    JavaScript 中的 function 有多重意义.它可能是一个构造器(constructor),承担起对象模板的作用: 可能是对象的方法(method),负责向对象发送消息.还可能是函数,没错 ...

  2. 如何用mshtml获得Javascript中function的返回值[mshtml]

    marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/ ...

  3. javascript中function详解

    目录 概念 定义 函数内部 this arguments 绑定函数作用域 Function.prototype.bind Function.prototype.applay Function.prot ...

  4. Javascript中你必须理解的执行上下文和调用栈

    执行上下文在 JavaScript 是非常重要的基础知识,想要理解 JavaScript 的执行过程,执行上下文是你必须要掌握的知识.否则只能是知其然不知其所以然. 理解执行上下文有什么好处呢? 它可 ...

  5. javascript中的面向对象理解(一)

    一.注意:提到"面向对象"这一概念,众所周知,javascript中的面向对象思想与其他的编程语言(例如:PHP.Java等)是有着很大区别的.因此,我们先复习下,传统意义上,面向 ...

  6. 关于JavaScript中Function Declaration与Function Expression的进一步说明

    区分变量与对象 在讨论函数声明与函数表达式之前,我觉得有必要明确一下JavaScript中变量及对象的区别.具体来说: JavaScript中的对象(Object)是一个实体,而变量(Variable ...

  7. 传递function_JS中!function(){}()的理解

    这种写法,是一种立即执行函数的写法,即IIFE等设计模式.这种函数在函数定义的地方就直接执行了. 理解IIFE设计模式的关键是要认识到,在ES6之前,JavaScript仅具有函数作用域(因此缺少块作 ...

  8. javascript 中的nodeList理解

    NodeList是一中类数组对象,用于保存一组有序的节点 可以通过方括号来访问NodeList的值,他有item()方法与length属性. 他并不是Array的实列,没有数组对象的方法. 如何拿到n ...

  9. javascript中bind函数理解

    bind函数会创建一个新的函数体: bind函数第一个参数是改变this的指向,第二个以及之后的每个参数都是传进去原来的函数参数: bind函数是在Function原型上的: bind 函数可以用来递 ...

最新文章

  1. Relay IR表示
  2. css3 box-sizing:border-box 实现div一行多列
  3. 人生第一个快速幂的题(HDU - 1097--A hard puzzle )
  4. 利用JDK工具进行系统性能监测
  5. linux shell if 参数
  6. .NET EFCore之增删改查
  7. 参加动画电影《魔比斯环》首映
  8. mysql 启动_mysql安装、启动
  9. 自定义控件-----输入框
  10. lof、etf、qdii基金区别
  11. python---python实现快速排序
  12. 2022年计算机软件水平考试程序员(初级)练习题及答案
  13. 软件体系结构期末复习题
  14. 脑科学磁共振成像(MRI)初学者必看——功能脑网络、小世界网络、FDR校正、脑电信号频率变换、模板、假设检验、广义线性模型、独立成分分析、影像组学、任务态和静息态方法汇总
  15. 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解
  16. Excel操作-多条件筛选
  17. 天玑9000和高通骁龙870哪个好
  18. 机智云自助开发平台,低代码快速开发新系统
  19. 创建一个Rectangle类。 添加两个属性width、height,分别表示宽度和高度,添加计算矩形的周长和面积的方法。测试输出一个矩形的周长和面积。
  20. 什么是HSS?HSS有什么主要功能?HSS与HLR的区别是什么

热门文章

  1. /etc/hosts/中HOSTNAME错误导致lsnrctl启动错误
  2. 服务器端往手机端推送数据的问题(手机解决方案)
  3. 怎样成为一名优秀的系统工程师
  4. 第四天上午 休闲假日
  5. php mysql 备注_php,mysql备注信息1
  6. Linux操作系统(二:shell脚本)
  7. 软件缺陷预测的两种定义
  8. Python培训基础教程都教哪些
  9. 学习ui设计的流程是什么
  10. 笔试算法题(58):二分查找树性能分析(Binary Search Tree Performance Analysis)