w3schools array javascript typeof

javascript - array - ¿Por qué "typeof" no necesita paréntesis?



typeof php (1)

La typeof clave typeof representa un operador en la programación de Javascript .

La definición correcta para el operador typeof en la specification es:

typeof[(]expression[)] ;

Esta es la razón detrás del uso de typeof como typeof(expression) o typeof expression .

Llegar a la razón por la que se ha implementado como tal probablemente sea para permitir que el desarrollador maneje el nivel de visibilidad en su código. Como tal, es posible usar una declaración condicional limpia usando typeof:

if ( typeof myVar === ''undefined'' ) // ... ;

O indicando una expresión más compleja usando el () por el bien de la legibilidad:

var isTrue = ( typeof ( myVar = anotherVar ) !== ''undefined'' ) && ( myVar === true ) );

EDITAR:

En algunos casos, el uso de paréntesis con el operador typeof hace que el código escrito sea menos propenso a la ambigüedad.

Tomemos por ejemplo la siguiente expresión donde el operador typeof se usa sin paréntesis. ¿Tipo devolvería el tipo del resultado de la concatenación entre un literal de cadena vacío y un número, o el tipo de cadena literal?

typeof "" + 42

Al observar la definición del operador indicada anteriormente y la precedencia de los operadores typeof y + , parece que la expresión anterior es equivalente a:

typeof("") + 42 // Returns the string `string42`

En este caso, usar paréntesis con typeof traería más claridad a lo que está tratando de expresar:

typeof("" + 42) // Returns the string `string`

¿Hay alguna diferencia entre typeof (myVariable) comparación con typeof myVariable ?

Ambos funcionan, pero viniendo de PHP, no entiendo por qué esta función puede usar paréntesis o no.