Acerca del uso de typeof

Como todos sabemos, typeof es un operador que puede devolver el tipo de su variable.

Pero hay algunos puntos a tener en cuenta:

1: La diferencia entre agregar corchetes después de typeod y no agregar corchetes

1. typeof a ;

typeof? (a);

De estos dos, el primero es un literal, por lo que se devolverá String el segundo es la variable a, y el valor de retorno depende del tipo a; es. .

2: typeof(somevar) ¿Qué pasa si una variable ni siquiera está declarada?

La respuesta es que no importa si su somevar está declarado o inicializado, devolverá undefinido.

Tres: use typeof antes de let

Porque hay A El sentido común es que si realiza alguna operación en una variable antes de permitirla, se generará un error y no se promoverá la declaración de la variable. Si es inteligente, comenzará a pensar si se promoverá la declaración de la variable. significa que no hay ninguna variable. Entonces typeof ¡No se informará ningún error para las variables no declaradas! Lo que sucedió fue contrario a las expectativas y, de hecho, se informó un error.

De esto podemos saber que typeof ya no es una operación absolutamente segura. Espero que todos lo sepan.

Ok, esta es una pregunta que me hizo el entrevistador cuando estaba entrevistando en Zhihu~