问答详情
源自:3-4 [JavaScript]严格模式

function前面加个!代表什么意思?

有特殊含义?

提问者:qazxcvbnmlp 2015-03-25 08:15

个回答

  • _Exception
    2015-03-25 09:42:00
    已采纳

    告诉浏览器自动运行这个匿名函数

  • Bosn
    2015-03-26 11:47:00

    没错哦,就是匿名函数。

    不仅可以用!,还可以用+, -, ~都可以。

    解释器在解释一个语句时,如果以function开头,就会理解为函数声明。

    而前面加一个!可以让解释器理解为函数表达式,这样就可以立即调用了。

    例如:

    !funciton() {

    }();


    而省略了!的话:

    function() {

    }();


    就会理解为函数声明,而函数声明没有名字会报错。如果有函数名:

    function f() {

    }();


    还是会报错,因为function f(){}函数声明会被前置,相当于:

    function f(){}


    (); // 这里报错