JS引擎在遇到function关键字时做如下两种处理: 1.当语句是以function关键字开头:此时的JS语句解释为函数声明,因此function关键字后面必须要跟函数名字,如果写成匿名函数,则会报错.即匿名函数不能出现在语句的开头. 2.当语句不是以function关键字开头:此时匿名函数是作为表达式的一部分. 因此,在写匿名函数自执行的时候,不能以function作为语句开头,而只能把它作为表达式的一部分,比如加上(),+,-等操作符. 参考:https://www.cnblogs.com…