JavaScript には括弧のセマンティクスが 5 つあります
セマンティクス 1、関数宣言時のパラメータリスト
function func(arg1,arg2){
// ...
}
セマンティック 2、いくつかのステートメントと組み合わせて使用されます。特定の制限を達成するには 関数
/ / for in
for(var a in obj){
// ...
}
// if
if(boo){
と一緒に使用します//...
}
// while
while(boo){
// ...
}
// と一緒に使用do while
do{
// ...
}while(boo)
注: if、while、do while と一緒に使用すると、括弧が式を置き換えます。 it 結果は暗黙的にブール値に変換されます。 「JavaScript での暗黙的な型変換」を参照してください。
セマンティック 3、値 (実際のパラメーター) を渡すために new とともに使用されます
// クラス Person が定義されており、name (名前) と age (年齢) の 2 つのフィールドがあると仮定します。
var p1 = new Person('Jack ',26) ;
セマンティック 4、関数またはオブジェクト メソッドの呼び出し演算子として (パラメーターが定義されている場合、実際のパラメーターもセマンティック 3 と同じ方法で渡すことができます)
// 関数が func であると仮定します。定義されています
func();
// オブジェクト obj が定義されており、 func メソッドがあると仮定します
obj.func();
は typeof 演算子です。このように使用することを好む人もいます
typeof(xxx);
typeof の後の括弧はセマンティック 4 (つまり関数呼び出しではない) ではなく、後述するセマンティック 5 であることに注意してください。私は通常、次の括弧なしで typeof を使用します。
セマンティクス 5、強制式評価
Semantic 5 に関しては、eval を使用して JSON を解析するのが最もよく知られています。
function strToJson(str){
// eval の文字列の両側に強制演算子 () が追加されます
var json = eval('(' str ')');
return json ;
}
もう 1 つの例は、匿名関数の自己実行です
(function(){
// ...
})();