javascript中匿名函数和普通函数的区别

JavaScript017

javascript中匿名函数和普通函数的区别,第1张

匿名函数在声明时不用带上函数名, 可以把匿名函数当作一个function类型的值来对待

声明一个普通的函数 function func() { ... } 可以认为和var func = function() { ... }相同, 但是普通函数会自动把函数名"提到"作用域的最前面, 基本上普通函数和匿名函数就只有这一个区别

function xxx() {

foo()//foo被提到了作用域的最前面, 于是这里可以正常调用foo函数

bar()//这里会报错bar是个undefined

function foo(){}

var bar = function(){}

}

//作用域和匿名函数没用任何关系

//js中函数内的变量在函数内的任何地方都能访问

//window对象下定义的变量均为全局变量,如:

var i = 1    //这个变量就是全局变量

function fun(){

    var j = 1    //这个j是局部变量,在fun里面的任何地方都能访问

}

//说匿名函数

$(function(){

    //这个function(){}就是匿名函数

})

var fun1 = function(){

    //这个function(){}也是匿名函数

}

//论匿名函数的重要性

//js中的匿名函数的重要性不亚于三元运算

//不过js中任何能用匿名函数实现的代码用普通函数都能实现

//就好比任何三元运算都能用if实现一样

$("body").click(function(){

    //jquery最基本的绑定click事件的一种

})

//上面这里用的就是匿名函数,可以用下面的代码代替

function clickHandle(){

    

}

$("body").click(clickHandle)

//说自运行函数

(function(){

    //这里还是匿名函数

})()

//上面的自运行函数(闭包操作)可以改成下面这样

function tempFun(){

}

tempFun()

//有帮助的话麻烦采纳下,手打不易,谢谢!

javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。

(function(){})是一个标准的函数定义,但是没有复制给任何变量。所以是没有名字的函数,叫匿名函数。没有名字就无法像普通函数那样随时随地调用了,所以在他定义完成后就马上调用他,后面的括号()是运行这个函数的意思

扩展资料

函数声明:使用function声明函数,并指定函数名。 

function setFn() {    // coding   }

函数表达式:使用function声明函数,但未指定函数名,将匿名函数赋予一个变量。

var setFn = function() {    // coding}

匿名函数:使用function关键字声明函数,但未指定函数名。匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。

function() {    // coding}

参考资料:百度百科 - javascript