首页>>百科常识

javascript 匿名函数的用途到底是啥?

今天宠物迷的小编给各位宠物饲养爱好者分享js匿名函数作用的宠物知识,其中也会对javascript 匿名函数的用途到底是啥?进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!

javascript 匿名函数的用途到底是啥?

javascript 匿名函数的用途到底是啥?

1 分析: 函数为何要有名字? 是为了方便下次使用. 匿名函数, 即没有名字. 2 用途: 通常不希望再次使用(即只使用一次的)的函数可以定义为匿名函数. 3 使用示例: // 定义并使用一个匿名函数来打印从1到10的整数(function (n) { for (var i = 1; i <= n; i++) console.log(i);})(10);4 扩展: 当然, 如果还是想再次使用匿名函数的话, 也有方法. 即把匿名函数赋给一个变量(funtion类型的变量), 想再次使用时, 使用该变量来调用即可.示例如下: // 定义一个匿名函数并将它赋给变量printNvar printN = function (n) { for (var i = 1; i <= n; i++) console.log(i);};// 通过变量printN来再次使用该匿名函数printN(10);5 运行效果果图如下: 图1 图2

javascript 匿名函数的用途到底是什么?

1、配合var关键字,匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。 2、《Javascript的一种模块模式》中的第一句话就是“全局变量是魔鬼”。配合var关键字,匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。实际上,YUI以及其相应的范例中大量使用匿名函数,其他的Javascript库中也不乏大量使用。Javascript的函数式编程(functional programming)的基石。具体请看《用函数式编程技术编写优美的 JavaScript》和《函数式JavaScript编程指南》。 3、要说匿名函数,我们首先要由函数本身说起。函数的定义如下:函数是将唯一的输出值赋予给每一输入的“法则”。当然,这只是数学上的定义。但是,在计算机编程语言中,函数的定义也八九不离十。因为我们都知道,计算机中的函数,也类似数学定义中的描述,它是将输入的若干数据,经过代码设定的逻辑操作处理后,返回唯一的输出的一组代码组合块。——当然,特例是,输入的数据为空或输出的数据为空,或者两者都为空。

js匿名函数与普通定义的函数有什么区别

在调用上,这两种方式定义的函数完全没有区别。如果要说区别,在定义时的相互覆盖上,会有一定的差异。例如同时使用下面几种方式同时定义同名的函数及变量: 1、function test() { 2}var test = function() { 1};2、var test = function() { 1};function test() { 2}3、var test = function() { 1};var test = function() { 2};4、function test() { 1}function test() { 2}你可以尝试一下上面定义时最终test是什么。

javascript 中 “ !function(){}() ” 是什么意思?

( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,要理解立即执行函数,需要先理解一些函数的基本概念。 函数声明: function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。 函数表达式: var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。 匿名函数: function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。 函数声明和函数表达式不同之处在于: 一、Javascript引擎在解析javascript代码时会‘函数声明提升'(Function declaration Hoisting)当前执行环境(作用域)上的函数声明。 而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式。 二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式调用。 在function前面加!、+、 -甚至是逗号等到都可以起到函数定义后立即执行的效果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式。 消除了javascript引擎识别函数表达式和函数声明的歧义,告诉javascript引擎这是一个函数表达式,不是函数声明,可以在后面加括号,并立即执行函数的代码。 扩展资料 作用: javascript中没用私有作用域的概念,如果在多人开发的项目上,你在全局或局部作用域中声明了一些变量,可能会被其他人不小心用同名的变量给覆盖掉。 根据javascript函数作用域链的特性,可以使用这种技术可以模仿一个私有作用域,用匿名函数作为一个“容器”。 “容器”内部可以访问外部的变量,而外部环境不能访问“容器”内部的变量,所以( function(){…} )()内部定义的变量不会和外部的变量发生冲突,俗称“匿名包裹器”或“命名空间”。 JQuery使用的就是这种方法,将JQuery代码包裹在( function (window,undefined){…jquery代码…} (window)中,在全局作用域中调用JQuery代码时,可以达到保护JQuery内部变量的作用。

js匿名函数怎么调用

+(function (){ alert("Go"); })()

javascript 匿名函数的问题..

我试了试没问题啊。chrome和ie6,因为你给的代码不全,所以给个建议,在var values = myform.elements[i].value;之后加个alert。 无标题文档 var myform = document.getElementsByTagName("form")[0]; for(var i=0;i<myform.elements.length;i++) { var values = myform.elements[i].value; alert(values); if(!values||values=="Send") continue; myform.elements[i].onclick = function() { alert("这个values为"+values);//这里为什么会输出Send?continue没有起到作用.... for(var j=0;j<myform.elements.length;j++) { var values2 = myform.elements[j].value; if(!values2||values2=="Send") continue; alert(values2);//这里输出的value都是符合条件的....(有value并且value不为Send) } } } 。

匿名立即执行函数传入undefined是什么意思

1.最简单的方法: public static String reverse1(String str) { return new StringBuffer(str).reverse().toString(); } 2.最常用的方法: public static String reverse3(String s) { char[] array = s.toCharArray(); String reverse = ""; /...

javascript 中 “ !function(){}() ” 是什么意思?

( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,要理解立即执行函数,需要先理解一些函数的基本概念。 函数声明: function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。 函数表达式: var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。 匿名函数: function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。 函数声明和函数表达式不同之处在于: 一、Javascript引擎在解析javascript代码时会‘函数声明提升'(Function declaration Hoisting)当前执行环境(作用域)上的函数声明。 而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式。 二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式调用。 在function前面加!、+、 -甚至是逗号等到都可以起到函数定义后立即执行的效果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式。 消除了javascript引擎识别函数表达式和函数声明的歧义,告诉javascript引擎这是一个函数表达式,不是函数声明,可以在后面加括号,并立即执行函数的代码。 扩展资料 作用: javascript中没用私有作用域的概念,如果在多人开发的项目上,你在全局或局部作用域中声明了一些变量,可能会被其他人不小心用同名的变量给覆盖掉。 根据javascript函数作用域链的特性,可以使用这种技术可以模仿一个私有作用域,用匿名函数作为一个“容器”。 “容器”内部可以访问外部的变量,而外部环境不能访问“容器”内部的变量,所以( function(){…} )()内部定义的变量不会和外部的变量发生冲突,俗称“匿名包裹器”或“命名空间”。 JQuery使用的就是这种方法,将JQuery代码包裹在( function (window,undefined){…jquery代码…} (window)中,在全局作用域中调用JQuery代码时,可以达到保护JQuery内部变量的作用。

JavaScript匿名函数和普通函数有什么区别?

JS中的匿名函数的用法及优缺点
匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。

这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。

一、什么是匿名函数?

在Javascript定义一个函数一般有如下三种方式:

函数关键字(function)语句:
function fnMethodName(x){alert(x);}
函数字面量(Function Literals):
var fnMethodName = function(x){alert(x);}
Function()构造函数:
var fnMethodName = new Function('x','alert(x);')

上面三种方法定义了同一个方法函数fnMethodName,

第1种就是最常用的方法,后两种都是把一个函数复制给变量fnMethodName,而这个函数是没有名字的,即匿名函数。

实际上,相当多的语言都有匿名函数。

二、函数字面量和Function()构造函数的区别

虽然函数字面量是一个匿名函数,但语法允许为其指定任意一个函数名,当写递归函数时可以调用它自己,使用Function()构造函数则不行。

var f = function fact(x) { if (x < = 1) return 1; else return x*fact(x-1); };

Function()构造函数允许运行时Javascript代码动态的创建和编译。在这个方式上它类似全局函数eval()。

Function()构造函数每次执行时都解析函数主体,并创建一个新的函数对象。所以当在一个循环或者频繁执行的函数中调用Function()构造函数的效率是非常低的。相反,函数字面量却不是每次遇到都重新编译的。

用Function()构造函数创建一个函数时并不遵循典型的作用域,它一直把它当作是**函数来执行。

var y = "global";

function constructFunction() { var y = "local"; return new Function("return y"); // 无法获取局部变量 } alert(constructFunction()()); // 输出 “global”和函数关键字定义相比Function()构造器有自己的特点且要难以使用的多,

所以这项技术通常很少使用。

而函数字面量表达式和函数关键字定义非常接近。

考虑前面的区别,虽然有消息说字面量的匿名函数在OS X 10.4.3下的某些webkit的引擎下有bug,

但我们平常所说的匿名函数均指采用函数字面量形式的匿名函数。

三、匿名函数的代码模式

错误模式:其无法工作,浏览器会报语法错。

function(){ alert(1); }();

函数字面量:首先声明一个函数对象,然后执行它。

(function(){ alert(1); } ) ( );

优先表达式:

( function(){ alert(2); } ( ) );

void操作符:

void function(){ alert(3); }()这三种方式是等同的,hedger wang因为个人原因比较喜欢第3种,而在实际应用中我看到的和使用的都是第1种。

四、匿名函数的应用

《Javascript的一种模块模式》中的第一句话就是“全局变量是魔鬼”。

配合var关键字,匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。

这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。

实际上,YUI以及其相应的范例中大量使用匿名函数,其他的Javascript库中也不乏大量使用。

Javascript的函数式编程(functional programming)的基石。

具体请看《用函数式编程技术编写优美的 JavaScript》和《函数式JavaScript编程指南》。

javascript中: (function(){})();如何理解?

javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。 (function(){})是一个标准的函数定义,但是没有复制给任何变量。所以是没有名字的函数,叫匿名函数。没有名字就无法像普通函数那样随时随地调用了,所以在他定义完成后就马上调用他,后面的括号()是运行这个函数的意思 扩展资料 函数声明:使用function声明函数,并指定函数名。  function setFn() { // coding } 函数表达式:使用function声明函数,但未指定函数名,将匿名函数赋予一个变量。 var setFn = function() { // coding} 匿名函数:使用function关键字声明函数,但未指定函数名。匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。 function() { // coding} 参考资料:百度百科 - javascript

本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“javascript 匿名函数的用途到底是啥?

标签:宠物爱好