首页 新闻 搜索 专区 学院

JavaScript的疑问,各位大佬帮忙解惑一下

0
悬赏园豆:200 [待解决问题]

为什么空括号会报错,而括号里有东西就不会如下:

()   // 会报错

(1) //不会报错

 

function(){}() //这样会报错;

!function(){}() //就不会报错呢

有人说function(){} 会被提前,变成

function(){}

();//这里报错

那我写成 :function(){}(1)  是不是应该变成

function(){}

(1)  ;//这里应该就不会报错啊,事实是还是会报错,怎么解释?

小飞侠ttt的主页 小飞侠ttt | 初学一级 | 园豆:2
提问于:2018-03-07 14:50
< >
分享
所有回答(2)
-2

会报错吗?

wpw | 园豆:26 (初学一级) | 2018-03-07 15:16
0

function(){}(),这样写立即执行函数是不对的,应该是 (function(){})()  。最后一个括号传的是参数.

 

为什么空括号会报错,而括号里有东西就不会如下:

()   // 会报错

(1) //不会报错

function(){}() //这样会报错;       /*function(){}() 错误写法,有没加1 都报错    */

!function(){}() //就不会报错呢   /* !function(){}() 这是立即执行函数的正确写法 */

总之  (function(){})()  和  !function(){}(),是立即执行函数的正确写法,括号里有没东西都不会报错。

恰似 | 园豆:209 (菜鸟二级) | 2018-03-07 18:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册