、函数的自执行

本文探讨了JavaScript中函数自执行的概念,解释了为何函数表达式可以自执行而函数声明不行。通过匿名函数的执行错误,揭示了JavaScript解析引擎对函数声明的处理方式。文章列举了四种解决自执行匿名函数的方案:加号、减号、感叹号和括号,并通过示例展示了它们的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 <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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值