Existem cinco semânticas de parênteses em Javascript
Semântica 1, lista de parâmetros quando a função é declarada
Copie o código do código da seguinte forma:
função func(arg1,arg2){
// ...
}
Semântica 2, usada em conjunto com algumas declarações para alcançar certos efeitos limitantes
Copie o código do código da seguinte forma:
// usado com for in
para(var a em obj){
// ...
}
//usado com if
se(boa){
//...
}
//usado com while
enquanto(vaia){
// ...
}
//usado com do while
fazer{
// ...
}enquanto(boo)
Nota: Quando usados com if, while e do while, os parênteses converterão implicitamente o resultado da expressão em um valor booleano. Consulte Conversão implícita de tipo em JavaScript.
Semântica 3, usada com new para passar valores (parâmetros reais)
Copie o código do código da seguinte forma:
// Suponha que foi definida a classe Pessoa, que possui dois campos nome (nome) e idade (idade)
var p1 = new Pessoa('Jack',26);
Semântica 4, como operador de chamada para funções ou métodos de objeto (se parâmetros forem definidos, os parâmetros reais também podem ser passados da mesma forma que a Semântica 3)
Copie o código do código da seguinte forma:
// Suponha que a função func foi definida
função();
// Suponha que o objeto obj foi definido e possui o método func
obj.func();
Aqui está o operador typeof, algumas pessoas gostam de usá-lo desta forma
tipo de(xxx);
Observe que os parênteses após typeof não são semânticos 4 (ou seja, não são uma chamada de função), mas semânticos 5 mencionados posteriormente. Eu costumo usar typeof sem os seguintes parênteses.
Semântica 5, avaliação de expressão forçada
Em relação à Semântica 5, todos estão mais familiarizados com o uso de eval para analisar JSON.
Copie o código do código da seguinte forma:
função strToJson(str){
// Operadores de força () são adicionados em ambos os lados da string em eval
var json = eval('(' + str + ')');
retornar JSON;
}
Outro exemplo é que funções anônimas são frequentemente usadas para autoexecução.
Copie o código do código da seguinte forma:
(função(){
// ...
})();