为什么函数的IIFE不按要求也能执行,并且还不报错。是什么原因?

为什么函数的IIFE不按要求也能执行,并且还不报错。是什么原因?

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>


<body>

    <script>

        var age = 19;

        var sex = '女';

        var title =function () {

            if (age < 18) {

                alert('小朋友') ;

               

            } else {

                if (sex == '男') {

                    alert ('先生');

                } else {

                    alert('女士');

                }

            }

        }();

    </script>

</body>


</html>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,不按要求指的是课程中({})()这种形式吗?

http://img1.sycdn.imooc.com//climg/5ffd419009a731cc06530547.jpg

({})()这种写法是立即执行函数的一种形式,不是固定的哦。同学这种写法是将title函数立即调用,相当于

http://img1.sycdn.imooc.com//climg/5ffd426b098f13fb03890189.jpg

这样也可以,语法没问题。

祝学习愉快!

  • 慕田峪6263377 提问者 #1
    不是要将函数用()包起来转变为表达式,相当于一个整体,然后后面加(),这样立即执行很容易理解,这种方式也称之为IIFE语法对吧,当然老师这样解释也合理,也能理解,但是问题是加了()和不加()既然是一样的,那为什么还要加()呢?
    2021-01-15 11:59:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师