Red de conocimiento informático - Computadora portátil - Resumen de preguntas de la entrevista web front-end de 2020 (1)

Resumen de preguntas de la entrevista web front-end de 2020 (1)

El artículo que quiero compartir con ustedes hoy es un resumen de las preguntas de la entrevista web front-end en 2020. Dado que hay mucho contenido, se lo presentaré por separado hoy, echemos un vistazo a la primera parte con el editor. Espero que estas preguntas de la entrevista puedan ser útiles para los amigos que se están preparando para encontrar cosas relacionadas con el front-end web. empleos.

1. ¿Cuáles son algunas reglas básicas para escribir JavaScript?

1) No declare varias variables en la misma línea;

2) Utilice == = /!== para comparar valores verdadero/falso o numéricos;

3) Usar objetos literales en lugar de newObject;

4) Reducir el uso de funciones globales y variables globales;

p>

5) La sentencia switch debe tener una rama predeterminada;

6) La sentencia if debe usar llaves;

7) Variables en el bucle for-in;

p>

La palabra clave var debe usarse para limitar explícitamente el alcance;

Para evitar la contaminación global del alcance.

2. ¿Hablamos de árboles binarios equilibrados?

Árbol de búsqueda binario equilibrado (Self-balancingbinarysearchtree)

También conocido como árbol AVL.

Tiene las siguientes propiedades:

1) Es un árbol vacío o el valor absoluto de la diferencia de altura entre sus subárboles izquierdo y derecho

no excede 1,

Y los subárboles izquierdo y derecho son árboles binarios equilibrados.

2) Un árbol binario equilibrado debe ser un árbol binario de búsqueda, pero no al revés.

3) Los métodos de implementación comúnmente utilizados de árboles binarios equilibrados incluyen árboles rojo-negro, AVL,

árboles chivo expiatorio, Treap, árboles elásticos, etc.

La fórmula del nodo del árbol binario mínimo balanceado es la siguiente:

F(n)=F(n-1)+F(n-2)+1 Nota : 1 son los nodos raíz,

F(n-1) es el número de nodos en el subárbol izquierdo,

F(n-2) es el número de nodos en el subárbol derecho.

3. ¿Cuál es la solución para eliminar la flotación y resolver la superposición de márgenes verticales?

Descripción del problema:

1) El elemento principal no establece el ancho y altura, y el tamaño está determinado por el elemento secundario Prop up;

Una vez que el elemento secundario flota, la altura del elemento principal colapsará.

2) Establecer el margen superior en un elemento secundario afectará el margen superior del elemento principal;

Esto hará que los márgenes verticales se superpongan.

.clearfix::después,.clearfix::antes{

contenido:'';

display:table;

borrar :both;

}

4.sessionStorage, localStorage y cookies?

Los mismos puntos:

Todos se utilizan para el navegador. datos de caché de almacenamiento lateral;

Diferencias:

1) Si el contenido almacenado se envía al lado del servidor

Cuando se establece una cookie, los datos se enviado al lado del servidor

Causa una cierta cantidad de desperdicio de ancho de banda; xxxstorage guardará los datos

localmente, lo que no causará desperdicio de ancho de banda;

2. ) Los tamaños de almacenamiento de datos son diferentes

p>

Los datos de las cookies no pueden exceder los 4K y son adecuados para la identificación de sesiones;

el almacenamiento de datos de xxxstorage puede alcanzar los 5M;

3) El período de validez del almacenamiento de datos es diferente

La cookie solo es válida hasta que se establezca el tiempo de vencimiento de la cookie

incluso si la ventana o el navegador está cerrado;

sessionStorage solo es válido hasta que se cierra el navegador;

localStorage, el almacenamiento de datos es válido permanentemente;

4) Diferentes alcances

Cookie y localStorage son en el mismo origen y en la misma ventana

Ambos son *** compartidos;

sessionStorage no se comparte en diferentes ventanas del navegador

, incluso en la misma página ;

5. ¿Determinar si una palabra es Palíndromo?

Un palíndromo se refiere a las mismas palabras u oraciones,

que se transponen o invierten en el siguiente texto. ,

lo que resulta en un bucle alrededor del principio y el final.

Se llama palíndromo, también llamado bucle.

Por ejemplo, cacac, redivisor.

letcheckPalindrom=(str)=>{

returnstr===

str.split('').reverse().join('') ;

}

6. ¿Intercambiar dos números enteros sin usar variables temporales?

Entrada a=3, b=1,

Salida a=1,b=3

letswap=(a,b)=>{

b=b-a;

a=a+ b;

b=a-b;

return[a,b];

}

7. Por favor escriba al menos 5 ¿Cuáles son las nuevas etiquetas? html5 y explicar su semántica y escenarios de aplicación?

sección: define una sección en el documento;

nav: define una sección que solo contiene enlaces de navegación;

Encabezado: define el encabezado de la página o capítulo;

A menudo contiene el logotipo, el título de la página y el índice de navegación.

Pie de página: define el final de una página o sección;

A menudo contiene información de derechos de autor, enlaces a información legal y direcciones para sugerencias de comentarios.

aparte: define el contenido que es menos relevante para el contenido de la página.

Si se elimina, el contenido restante sigue siendo razonable.

8. ¿Cuál es la diferencia en el almacenamiento en caché entre solicitudes de obtención y publicación?

La solicitud de obtención es similar al proceso de búsqueda. El usuario obtiene datos.

No es necesario hacerlo cada vez. Conéctese a la base de datos para poder utilizar el almacenamiento en caché.

La publicación es diferente. La publicación generalmente realiza trabajos de modificación y eliminación.

Por lo tanto, debe interactuar con la base de datos, por lo que no se puede utilizar el almacenamiento en caché.

Por lo tanto, las solicitudes de obtención son adecuadas para solicitar caché.

9. ¿Cómo resolver el infierno de devolución de llamada asincrónica?

promesa, generador, async/await

10. ¿Carga diferida y precarga de imágenes?

Precarga: carga imágenes por adelantado.

Cuando los usuarios necesitan verlas, pueden renderizarse directamente

desde el caché local.

Carga diferida: El objetivo principal de la carga diferida

es optimizar el front-end del servidor,

reducir el número de solicitudes o retrasar la número de solicitudes.

La esencia de las dos tecnologías:

El comportamiento de las dos es opuesto,

Uno es la carga temprana,

El otro es lento Ni siquiera carga.

La carga diferida tiene un cierto

efecto de alivio en la interfaz del servidor,

la precarga aumentará la presión sobre la interfaz del servidor.

11. ¿Cuáles son las diferencias entre vincular, aplicar y llamar?

Cambie el puntero this de la función mediante aplicar y llamar.

El primer parámetro de estas dos funciones son todas iguales,

Indica el objeto señalado para cambiar,

El segundo parámetro, aplicar es una matriz,

y llamar es arg1, arg2 ... esta forma.

Cambiar este alcance mediante bind

devolverá una nueva función.

Esta función no se ejecutará inmediatamente.

¿Cómo controla 12.js la carga de una imagen a la vez y luego carga la siguiente después de cargarla?

Método 1:

varobj=newImage(

obj.src="#/21.jpg";

obj.onload=function(){

document.getElementById("foto"); )

.innnerHTML="";

}

Cargando