Los paréntesis en Javascript son lo que se llama "token" y su significado depende del entorno donde se utilicen. Algunos ejemplos simples:
// para anular la jerarquía en operaciones aritméticas:
( 1 + 3 ) * 5 // 20
1 + 3 * 5 // 16
// para "invocar" (llamarlas y hacer trabajar) funciones:
alert( ); // alert es una función, en alguna parte del código interno de Javascript hay una definición similar a:
function alert() {
// levanta un popup y si lo hay,
// muestra el contenido que el
// programador envíe como parámetro
}
// para pasar los parámetros a una función:
alert("Esto es el parámetro de la función");
Por ahora me limité a ejemplos similares a cosas vistas en el curso pero también se utilizan para otras muchas funciones, (funciones IIFE, evaluaciones lógicas, por ejemplo las comunes por si quieres investigar) pero en general, igual que con el lenguaje natural, algunas palabras tienen más de una función según el contexto donde se utilizan y solo puedes aprender a través de la práctica y memorización (no hay "una sola" regla fija sobre el uso de este token). Y aunque no parezca una palabra, para Javascript los ( ) son algo muy similar a una "palabra" (token) de nuestro lenguaje, y cuando la encuentra, procede a evaluar el contexto donde está para saber qué hacer.
A la pregunta de Oscar: en JS puedes usar comillas dobles y simples indistintamente (eligiendo el sabor, no puedes comenzar con una y cerrar con la otra) pero una convención común es usar simples en JS puro y dobles en HTML para poder crear strings que anidan ambas sin tener que escapar caracteres. Y de nuevo, si la instrucción es una función, su gramática requiere el uso de paréntesis tanto cuando la defines como cuando la invocas. Hay excepciones como los handlers y callbacks que no requieren paréntesis para ser ejecutados o las funciones arrow que no requieren paréntesis al tener un solo parámetro, pero insisto, depende del contexto, en general la regla es que defines e invocas a las funciones utilizando nombre ()
. La gran diferencia es que la definición incluye la palabra reservada function
al principio y luego un "cuerpo de la función entre dos { // cuerpo de la función }
mientras que la invocación solo requiere el nombre y los ()
// definición de funcion de nombre "miFuncion":
function miFuncion () {
/* lo que sea que hace*/
}
// invocación de funcion de nombre "miFuncion":
miFuncion();