<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>

    // 使用这种方式定义的函数是不能在后边直接加括号执行的
    // 只能通过名字加括号执行
    // function a() {
    //     alert()
    // }();

    //通过这种方式定义的函数,可以直接在后边加括号执行
    // let a = function () {
    //     alert(1);
    // }();

    // 匿名函数不能直接放到代码中,但是可以直接放到[]中
    // function () {}

    // 这就是一个函数的自执行,不是闭包
    // 把匿名函数放到括号中,可以存在,也可以直接执行
    // 这种存在的意义就在函数只会被调用一次,没有必要留着
    // 这两种都是可以的
    // (function () {alert(4)})();
    // (function () {alert(4)()});

    // 这两种也是可以的
    // + function(){
    //     alert(1);
    // }();

    // - function () {
    //     alert(2);
    // }();

    // ~function () {
    //     alert(3);
    // }();

    // !function () {
    //     alert(4);
    // }();

    // ()这种使用比较多   +-~!会改变返回值
</script>
</body>
</html>