解析Javascript圆括号()的多义性

Javascript括号有五种语义

语义1,函数声明参数表
复制代码代码如下所示:
功能(arg1,arg2){函数

}

语义2,结合一些语句,达到一定的限制效果。
复制代码代码如下所示:
使用内和/或/或
对于(OBJ VaR){

}

如果
如果(嘘){

}


当(嘘){

}

使用while和
做{
/ /…
}(嘘)

注意:当使用while、while和do时,括号将隐式地将表达式结果转换为布尔值。

语义3,与新传递值(参数)一起使用。
复制代码代码如下所示:
假设已经定义了类人,它有两个字段名(name)、年龄(年龄)
VaR P1 =新的人(杰克',26);

语义4,调用操作符作为函数或对象方法(如果一个参数可以定义为一个真正的参数作为语义3)
复制代码代码如下所示:
定义了函数的作用。
Func();

假设 / /函数方法定义的对象
Obj.func();

这里的typeof运算符,有人喜欢用它。

Typeof(XXX);

请注意:括号后不语义4(即不是一个函数调用),但语义5提及。我使用typeof一般没有后面的括号。

语义5,强制表达式运算

基于语义的5,最常见的是使用eval解析JSON
复制代码代码如下所示:
功能strtojson(STR){
eval的字符串/运营商双方(必修)
var json = eval('(' +个+);
返回的JSON;
}

更多匿名函数的使用是自执行的。
复制代码代码如下所示:
(函数(){())

});