JavaScript的匿名函数的参数问题

JavaScript015

JavaScript的匿名函数的参数问题,第1张

其实函数都可以传递参数的,就看你在函数体内有没有做相应的处理:

匿名函数有形参的时候,就可以传递相应的实参:

(function(a, b)

{

alert(a + " and " + b)

}

)("a", "b")// 返回"a and b"

匿名函数没有形参的时候,可以用arguments来处理:

(function()

{

var str = ""

for(i = 0i <arguments.lengthi ++ )

{

str += arguments[i] + " , "

}

alert(str)

}

)("a", "b", "c", "d")//返回"a , b , c , d , "

本节讲解 3 种原生JS的匿名函数。

匿名函数又叫立即执行函数。

因为是匿名的,所以不能被调用。

因为不能被调用,所以不立即执行的话就没意义了。

因为立即执行,所以在执行完之后就会被销毁。

第一种(常用)

( function(){…} )()

第二种(常用)

( function(){…}() )

第三种(不常用)

~function(){…}()

前两种写法,返回值都是正常的。

第三种写法的返回值会比较奇怪,所以很少用。

第一种写法

在控制台输出 1

第二种写法

在控制台输出 2

第三种写法

在控制台输出 -4

在控制台输出2

假设第三种写法的返回值是未知数 x。

则得到的返回值是:-(x + 1)