Эти конкретные примеры будут работать без дополнительных скобок.
const x = () => {};
if( (typeof x) === "function" ) {
console.log('yup');
}
if(typeof x === "function") {
console.log('yup');
}
alert("Hello World")
Один из вариантов использования для добавления дополнительных скобок - преодоление приоритета оператора .
console.log(3 + 4 * 5); // 3 + 20
console.log((3 + 4) * 5); // 7 * 5
Другой пример, где используется добавление круглых скобок вокруг функции, - это вызов функции в том же месте, в котором она определена (обычно известный как IIFE ):
function notInvoked() {
console.log('this does not happen');
}
(function invoked() {
console.log('this happens');
})(); // Note: an IIFE also requires a pair of () before or after the last parenthesis so that the function is actually invoked