JS匿名函数之函数表达式与立即执行函数
匿名函数是什么?和具名函数有什么区别?让我为大家介绍一下吧!
没有名字的函数,无法直接使用
一.函数表达式
将匿名函数赋值给一个变量,并且通过变量名去调用,我们将这个称为函数表达式
语法:
let fun = function(){}
let fun = function(){
console.log("我是函数表达式")
}
fun() //调用
我们传入参数怎么传
let fun = function (x, y) {
console.log(x + y) //3
}
fun(1,2)
函数表达式和具名函数的不同点
1.具名函数的调用可以写到任何位置
fun()
function fun(){
console.log(1) //1
}
2.函数表达式必须先声明函数表达式,后调用
// 报错 Cannot access 'fun' before initialization
// 在初始化之前无法访问'fun'
fun(1,2)
let fun = function (x, y) {
console.log(x + y)
}
二.立即执行函数
使用场景:避免全局变量之间的污染
语法:
// 第一种
(function(){}());
// 第二种
(function(){})();
注意:立即执行函数要加分号
(function(){}())
// 报错 因为()后面还是()没有结束
(function(){})();
第二个小括号相当于调用函数
传入参数
第一种写法:
(function (x, y) {
console.log(x + y) //3
})(1, 2)
第二种写法:
(function (x, y) {
console.log(x + y) //3
}(1, 2))
立即执行函数注意事项
1.无需调用,立即执行,其实本质已经调用了
2.多个立即执行函数之间用分号隔开
感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!