JS016. 详解匿名函数_立即执行函数_自执行函数(递归函数)

匿名函数(Anonymous Function)

顾名思义就是没有名字的函数,如下:

是因为关键字 “ function ” 作为一个声明语句被浏览器解析,就如 let  = '97z4moon' 一样,只声明了变量的值,却没有声明是什么变量,但这个报错是可以避免的。

怎样不会报错?阅读我的另一篇文章:JS006. 一文理解自执行函数与数据类型的快速转换 (声明语句、表达式、运算符剖析)

该文通过声明语句、表达式与运算符详细分析了为什么匿名函数能够存在。

言简意赅就是,解析器将关键字function视为函数声明语句,而不是函数表达式,如果我们没有明确告诉解析器该语句期待的是一个表达式,它就会被认为是没有名字的函数声明,并抛出 SyntaxError 异常,因此函数需要名称。

匿名函数的几种常用场景:

立即执行函数(Immediately-Invoked Function Expressio)

在JavaScript中,每个函数在被调用时都会创建一个新的执行上下文,因为在函数内定义的变量喝函数只能在上下文内部访问(函数作用域),所以调用

简单概括解决方案就是将声明语句转化为表达式,这里举一个上文没提到的另一种方式:

 

posted @ 2021-07-09 10:51  97z4moon  阅读(209)  评论(0)    收藏  举报
Title