Во многих языках синтаксис function_name(arg1, arg2, ...)используется для вызова функции. Когда мы хотим вызвать функцию без каких-либо аргументов, мы должны это сделать function_name().
Я нахожу странным, что компилятор или интерпретатор сценариев потребовал ()бы успешного обнаружения его как вызова функции. Если известно, что переменная может быть вызвана, почему этого function_name;недостаточно?
С другой стороны, на некоторых языках мы можем сделать: function_name 'test';или даже function_name 'first' 'second';вызвать функцию или команду.
Я думаю, что круглые скобки были бы лучше, если бы они были необходимы только для объявления порядка приоритета, а в других местах были необязательными. Например, делать if expression == true function_name;должно быть так же, как if (expression == true) function_name();.
Самое неприятное, на мой взгляд, это делать, 'SOME_STRING'.toLowerCase()когда явно не нужны аргументы для функции-прототипа. Почему дизайнеры решили против простого 'SOME_STRING'.lower?
Отказ от ответственности: не поймите меня неправильно, я люблю C-подобный синтаксис! ;) Я просто спрашиваю, может ли это быть лучше. Есть ли у требования ()преимущества в производительности или облегчает понимание кода? Мне действительно любопытно, в чем именно причина.
(), и все же в вашем посте выделяется if (expression == true)утверждение. Вы беспокоитесь о лишних (), но тогда используйте лишнее == true:)