豆角茄子子

导航

JavaScript里的函数加或不加括号的区别

区别

加括号:代表立即执行,也代表该函数的返回值

不加括号:代表函数体本身(Function类型)

测试

1.分别alert出各自结果

<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <p>JavaScript Test</p>
    </body>

    <script>
        function test() {
            return 'hello';
        }
        alert(test);
        alert(test());
    </script>
</html>

结果如下:

  function test() {
    return 'hello';
  }
  hello

2.setTimeout“不生效”的问题(没有按照预期3s后再去执行test()函数,而是直接执行它)

<html>
    <head>
        <title>Test</title>
    </head>

    <body>
        <p>JavaScript Test</p>
    </body>

    <script>
        function test() {
            console.log('hello');
        }
        setTimeout(test(),3000);
    </script>
</html>

结果:不延迟3s,直接打印'hello'。所以需要注意正确的写法是不加括号:

setTimeout(test,3000);

 

posted on 2018-12-05 11:17  豆角茄子子  阅读(491)  评论(0编辑  收藏  举报