Em muitos idiomas, a sintaxe function_name(arg1, arg2, ...)é usada para chamar uma função. Quando queremos chamar a função sem argumentos, devemos fazê-lo function_name().
Acho estranho que um compilador ou intérprete de script exigiria ()detectá-lo com êxito como uma chamada de função. Se uma variável é conhecida como chamadora, por que não function_name;seria suficiente?
Por outro lado, em alguns idiomas, podemos fazer: function_name 'test';ou mesmo function_name 'first' 'second';chamar uma função ou comando.
Acho que os parênteses teriam sido melhores se fossem necessários apenas para declarar a ordem de prioridade e, em outros lugares, eram opcionais. Por exemplo, fazer if expression == true function_name;deve ser tão válido quanto if (expression == true) function_name();.
A coisa mais irritante na minha opinião é fazer 'SOME_STRING'.toLowerCase()quando claramente nenhum argumento é necessário para a função prototype. Por que os designers decidiram contra o mais simples 'SOME_STRING'.lower?
Isenção de responsabilidade: não me interpretem mal, eu amo a sintaxe do tipo C! ;) Só estou perguntando se poderia ser melhor. A exigência ()tem vantagens de desempenho ou facilita a compreensão do código? Estou realmente curioso para saber exatamente qual é o motivo.
(), mas o que se destaca em seu post é a if (expression == true)afirmação. Você se preocupa com supérfluos ()'s, no entanto, em seguida, usar um supérfluo == true:)