解析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;
}
更多匿名函数的使用是自执行的。
复制代码代码如下所示:
(函数(){())
…
});