Banco de preguntas básicas de la entrevista frontal - 7

61. ¿Qué es Node.js?   ¿Cómo usarlo?

        Node.js es un entorno de ejecución de JavaScript basado en el motor Chrome V8, que proporciona un modelo IO sin bloqueo y controlado por eventos para desarrollar servidores web y aplicaciones de red. Node.js puede usar JavaScript en el lado del servidor para desarrollar aplicaciones web, manejar flujos de datos y más. Node.js tiene las siguientes características:

        ● El modelo de programación asincrónica utiliza modelos de E/S (entrada/salida) sin bloqueo y controlados por eventos para mejorar el rendimiento y las capacidades de procesamiento simultáneo de las aplicaciones web.

        ● Adoptar un modelo de subproceso único para evitar la complejidad causada por la programación de subprocesos múltiples.

        ● Cultura abierta y rica biblioteca de extensiones, que proporciona una serie de API estándar y WebSocket, etc.

        ● Al utilizar el lenguaje JavaScript para desarrollar, puede desarrollar rápidamente aplicaciones web, acortar el tiempo de implementación de aplicaciones y simplificar el proceso de intercambio de datos entre el cliente y el servidor.

 62. En el desarrollo diario de código front-end, ¿qué optimizaciones o   especificaciones de programación vale la pena mejorar con ES6 ?

        1. Las funciones de flecha se utilizan a menudo para reemplazar var self = this;.

        2. Let se usa comúnmente para reemplazar el comando var.

        3. Las asignaciones de estructura de matriz/objeto de uso común se utilizan para nombrar variables: la estructura es más clara, la semántica es más clara y la legibilidad es mejor.

        4. En el caso de combinaciones de múltiples variables de cadenas largas, el uso de cadenas de plantilla en lugar de la acumulación de cadenas puede lograr mejores resultados y experiencia de lectura.

        5. Utilice clases para reemplazar los constructores tradicionales para generar objetos instanciados.

        6. En el desarrollo de aplicaciones a gran escala, es necesario mantener el pensamiento de desarrollo modular de los módulos y distinguir la relación entre los módulos. Los métodos de importación y exportación se utilizan comúnmente.

 63. ¿Cuál es la diferencia entre el procesamiento de rechazo y captura en Promise ?

        1.reject se usa para lanzar excepciones, catch se usa para manejar excepciones

        2.reject es un método de Promise y catch es un método de instancia de Promise

        3. Las cosas después del rechazo definitivamente ingresarán la segunda devolución de llamada, si la segunda devolución de llamada no se escribe en ese momento, ingresará captura.

        4. Si hay una anomalía en la red (como una desconexión), ingresará directamente la captura en lugar de la segunda devolución de llamada.

64. Comprenda async/await y sus ventajas sobre Generator  

        entender asíncrono esperar

        async await se usa para resolver problemas asincrónicos. La función async es el azúcar sintáctico de la función Generador y está representada por la palabra clave async. Dentro de la función, await se usa para representar asincrónico;

        La función asíncrona devuelve un objeto Promise y puede usar el método then para agregar una función de devolución de llamada;

        Cuando se ejecuta la función, una vez que se encuentra en espera, regresará primero, esperará hasta que se complete la operación asincrónica y luego ejecutará las declaraciones posteriores en el cuerpo de la función;

Ventajas de         async sobre Generator

        1. Actuador incorporado

                La ejecución de la función Generador debe depender del ejecutor, y la función Aysnc tiene su propio ejecutor, y el método de llamada es el mismo que el ordinario

Las llamadas a funciones son las mismas.

        2. Mejor semántica

                async y await son más semánticos que * y yield.

        3. Aplicabilidad más amplia

                El comando de rendimiento solo puede ir seguido de una función Thunk o un objeto Promise, y la espera de una función asíncrona puede ir seguida de

Las promesas también pueden ser valores de tipos primitivos.

        4. El valor de retorno es Promesa

                La función asíncrona devuelve un objeto Promesa, que es más conveniente que el objeto Iterador devuelto por la función Generador.

Para llamar directamente usando el método then().

                La función del generador es una tarea asincrónica encapsulada, es decir, el contenedor de la tarea asincrónica. La ejecución de la función del Generador devolverá un objeto transversal. La implementación de la función asíncrona es envolver la función del Generador y el ejecutor automático en una función.

 65. Hablemos de los módulos de importación y exportación de ES6.

         Módulo de importación

        mediante palabra clave de importación

// 只导入一个

import {sum} from "./example.js"

// 导入多个

import {sum,multiply,time} from "./exportExample.js"

// 导入一整个模块

import * as example from "./exportExample.js"

        módulo de exportación

        Exportar mediante palabra clave de exportación

//可以将 export 放在任何变量,函数或类声明的前面

export var firstName = 'Chen'; export var lastName = 'Sunny'; export var year = 1998;

//也可以使用大括号指定所要输出的一组变量

var firstName = 'Chen';

var lastName = 'Sunny';

var year = 1998;

export {firstName, lastName, year} ;

//使用 export default 时,对应的 import 语句不需要使用大括号

let bosh = function crs(){} export default bosh;

import crc from 'crc';

//不使用 export default 时,对应的 import 语句需要使用大括号

let bosh = function crs(){}

export bosh;

import {crc} from 'crc';
66. ¿ Cuál es el mecanismo de recolección de basura en JS ,  cuál se usa comúnmente y cómo se maneja ?   

        El mecanismo de recolección de basura de JS es evitar pérdidas de memoria. El significado de las pérdidas de memoria es que una determinada parte de la memoria variables que ya no se usan de manera intermitente e irregular. y liberar el recuerdo al que apuntan. El método de recolección de basura más común en JS es marcar y barrer.

        principio de funcionamiento:

                        Cuando una variable ingresa al entorno, márquela como "ingresando al entorno". Cuando una variable abandona el entorno, se marca como "abandono del entorno". La memoria marcada como "abandono del medio ambiente" se recicla.

        Proceso de trabajo:

                1. El recolector de basura marcará todas las variables almacenadas en la memoria durante la operación;

                2. Eliminar las etiquetas de las variables del entorno y las variables a las que hacen referencia las variables del entorno;

                3. Las variables que se vuelvan a marcar se considerarán variables a eliminar;

                4. El recolector de basura completa el trabajo de limpieza de la memoria, destruye los valores marcados y recupera el espacio de memoria que ocupan  .

67. ¿Cómo resolver el problema de atasco al cambiar los gráficos estadísticos de otros componentes? 

        1. Motivo: cuando cada leyenda no tiene datos, se creará un temporizador para representar burbujas. Después de cambiar de página, la leyenda de echarts se destruye, pero la instancia de echarts todavía está en la memoria y su temporizador de representación de burbujas todavía está allí. .Correr. Esto hace que echarts consuma una gran cantidad de CPU, lo que provoca que el navegador se congele e incluso que el navegador se bloquee cuando la cantidad de datos es grande.

        2. Solución: agregue un método beforeDestroy() entre el método montado() y el método destroy() para liberar el recurso del gráfico de la página. El método clear() borra los datos de la leyenda, no afecta el cambio de tamaño de la leyenda. y puede liberar memoria, será muy suave al cambiar.

beforeDestroy () {

    this.chart.clear()

}
68. Problema de cambio de tamaño de div adaptativo del gráfico echarts  

        Todas las instancias en el sitio web oficial de echarts tienen funciones de respuesta

        El propio gráfico echarts proporciona una función de cambio de tamaño.

        Se utiliza para activar el evento de cambio de tamaño de echarts y volver a dibujar el lienzo cuando el evento de cambio de tamaño ocurre en el div.

<div class="chart">

<div class="col-md-3" style="width:73%;height:270px" id="chartx"></div> </div>

<script src="/static/assets/scripts/jQuery.ba-resize.js"></script>
var myChartx = echarts.init(document.getElementById('chartx'));

$('.chart').resize(function(){

myChartx.resize();

})
Sesenta y nueve Códigos de estado HTTP comunes y sus significados  

        5 códigos de estado HTTP comunes y sus significados

                200 (OK): la solicitud se realizó correctamente y el encabezado de respuesta o el cuerpo de datos esperado por la solicitud se devolverá con esta respuesta.

                 400 (Solicitud incorrecta): el formato de la solicitud es incorrecto.       

                        1) La semántica es incorrecta y el servidor no puede entender la solicitud actual. A menos que se modifique, el cliente no debe volver a

Envíe esta solicitud nuevamente;

                        2) Los parámetros de la solicitud son incorrectos.

                404 (No encontrado): la solicitud falló y el recurso solicitado no se encontró en el servidor.

                500 (Error interno del servidor): el servidor encontró una situación inesperada que le impidió completar el procesamiento de la solicitud.

        Más códigos de estado

                100 => Inicializando (generalmente invisible)

                101 => Protocolo de conmutación (proporcionado por el navegador websocket)

                202 => indica aceptación

                301 => Redirección permanente/transferencia permanente

                302 => Redirección temporal/transferencia temporal (generalmente utilizada para equilibrar la carga del servidor)

                304 => El contenido obtenido esta vez es para leer los datos en el caché y será verificado por el servidor cada vez.

                401 => No autenticado, no iniciado sesión en el sitio web

                403 => Acceso prohibido, sin permiso

                502 => El servidor que actúa como puerta de enlace o proxy recibió una solicitud no válida del servidor remoto.

                503 => Sobrecarga del servidor (suponiendo que un servidor solo puede soportar 10,000 personas, cuando accede la persona número 10,001, si el servidor no realiza el equilibrio de carga, entonces el código de estado de red de esta persona es 503)

                505 => El servidor no admite la versión del protocolo HTTP solicitada y no puede completar el procesamiento. 

 70. Precauciones de Ajax y escenarios aplicables e inaplicables.

        Al desarrollar Ajax, es necesario considerar cuidadosamente la latencia de la red (el tiempo entre la solicitud de un usuario y la respuesta del servidor). No dar a los usuarios una respuesta clara, no leer previamente los datos de forma adecuada o manejar XMLHTTPRequest de forma inadecuada hará que los usuarios experimenten retrasos que no quieren ver y que no pueden entender. Una solución común es utilizar un componente visual para indicarle al usuario que el sistema está realizando operaciones en segundo plano y leyendo datos y contenido.

Escenarios aplicables         a Ajax

                1. Interacción basada en formularios

                2. Navegación profunda en el árbol

                3. Comunicación y respuesta rápidas de usuario a usuario

                4. Escenas insignificantes como votaciones, sí/no, etc.

                5. Escenarios para filtrar datos y manipular datos relacionados.

                6. Indicaciones de entrada de texto ordinarias y escenarios de autocompletar

        Ajax no es adecuado para escenarios.

                1. Algunas formas simples

                2. Buscar

                3. Navegación básica

                4. Reemplace grandes cantidades de texto

                5. Manipulación de la presentación

 

Supongo que te gusta

Origin blog.csdn.net/qq_17189095/article/details/131836749
Recomendado
Clasificación