<script>
**函数自执行**
**函数表达式自执行尝试**
var add = function (x, y) {
console.log(x + y);
}(5, 6); //结果:11(正确)
//函数声明自执行尝试
function add(x, y) {
console.log(x + y);
} (5, 6); //结果:无法执行,也没有抛出错误
//匿名函数自执行尝试
function() {
console.log(arguments[0] + arguments[1]);
} (5, 6); //抛出语法错误Function statements require a function name
> 函数表达式后面加括号可以立即执行函数,然而函数声明却不可以!!
>
> 很奇怪地,匿名函数也是函数表达式,但是它为什么会抛出语法错误呢?
> 这是因为匿名函数虽然属于函数表达式,但是很明显它没有赋值操作,
> JavaScript解析引擎会把它当做函数声明,会跟你要一个函数名,但是它是匿名函数,肯定没有名字,
> JavaScript混了,直接给你个错误让你反省一下。
>
> 解决函数声明自执行的问题和匿名函数自执行的方法是一样的,加号,减号,感叹号,括号,都可以解决
> 加号
+function () {
console.log(arguments[0] + arguments[1]);
}(5, 6);
//减号
-function () {
console.log(arguments[0] + arguments[1]);
}(5, 6);
//感叹号
!function () {
console.log(arguments[0] + arguments[1]);
}(5, 6);
//括号
(function () {
console.log(arguments[0] + arguments[1]);
})(5, 6);
(function () {
console.log(arguments[0] + arguments[1]);
}(5, 6));
</script>
、函数的自执行
于 2022-02-28 16:51:05 首次发布