javascript - js里面()的作用?
迷茫
迷茫 2017-04-11 12:22:44
0
5
275

在立即执行函数里面,()里面包裹着一个匿名函数,将匿名函数看作函数表达式,那么()该怎么理解?以前也见过类似的在()里面写表达式的,所以()该怎么理解?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

reply all(5)
迷茫

圆括号本身是一运算符:它里边有东西的话,它起提升优先级的作用;如果它里边没东西,就是函数调用。函数声明和函数表达式的语法其实非常的像(参见函数),区别只在于函数表达式中的函数名是可以忽略的(就是匿名函数)。所以如果看到没名的函数,那一定是函数表达式~那匿名函数为啥要用圆括号包起来?原因在于如果不包的话,没名又没赋给变量,咋引用?于是系统会认为你写了个不合(基本)法的表达式;括起来以后呢,相当于对函数返回值加了一道计算,所以就合法了,再加个括号调用执行,就变成了IIFE(立即调用函数表达式)了。

伊谢尔伦

直接看ECMA-262 5.1里的语法定义,表达式有下面几种:

最后一个就是题主想问的(),来看文档:

原来正式的名称是Grouping Operator,作用就是对里面的表达式求值,然后返回求值的结果。

Ty80

首先()是一种运算符,它有两种用法:
1.(expression):表示对expression进行求值,并且return求值的result。
2.functionName():表示调用函数functionName。

小葫芦

可参考此链接
就是将函数声明变成一个语句。

迷茫
    //匿名函数自执行
    (function(){
        console.log(1)
    })();

    //函数表达式
    var someFun = function(){
        console.log(1);
    }
    someFun();

上面的这两种写法其实是等价的;
在匿名函数的第一个括号里,其实是将这个函数匿名函数变为了函数声明,然后后面的一个括号表示函数执行。
希望对你有用!

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!