2020 preguntas de la entrevista

1, se determina js tipo manera

Solución: A , typeof (basado en la 'cadena', 'Número', 'Boolean', 'indefinido', 'símbolo' , pero la determinación typeof (null) valor es 'objeto'; momento en el que ambas matrices y objetos Analizar 'objeto' ); B , el instanceof ( var STR = new nueva cadena ( 'Hola' ); el console.log (STR la instanceof String); // a verdadero ).

2 , ES5 y ES6 varias formas de declarar las variables

Solución: Una , la ES5 hay dos tipos: var  y  función ; B , para ES6 son seis: cuatro clases aumenta, let , const , la clase  y  la importación

3 , el concepto de cierre? Ventajas y desventajas de cierre de paquete?

Solución: Concepto: cierre es la variable interna puede ser leído como una función de otras funciones.

ventajas:

A , para evitar la contaminación de las variables globales

b , que desee una variable a largo plazo almacenada en la memoria (variable caché)

desventajas:

A , pérdidas de memoria (consumo)

b , la memoria permanente, el aumento de uso de memoria

4 , copia copia superficial profunda y

Solución: Significado: Supongamos que la copia B de A, al modificar A, B para ver si el cambio pasaría si B también siguieron cambiaron, afirmó que se trata de una copia superficial, tomar corto de mano de obra, si B no ha cambiado, y que es una copia profunda.

copia superficial:

LET a = [0,1,2,3,4],

     b = a;

console.log (a === b); //cierto

a [0] = 1;

console.log (a, b); 1,1,2,3,4

copia en profundidad:

LET a = [0,1,2,3,4],

     b = a.slice ();

a [0] = 2;

console.log (a, b); // a: 2,2,3,4 b: 1,2,3,4

 

función deepClone (obj) {

dejar que objClone = Array.isArray (obj) []: {};?

    si (obj && typeof obj === "objeto") {

        para (clave en obj) {

            si (obj.hasOwnProperty (clave)) {

                // determinar si el objeto es elemento secundario OJB, si lo es, copia recursiva

                si (obj [tecla] && typeof obj [tecla] === "objeto") {

                    objClone [clave] = deepClone (obj [tecla]);

                }más{

                    // Si no es así, simplemente copia

                    objClone [clave] = obj [tecla];

                }

            }

        }

    }

    volver objClone;

}    

Sea A = [1,2,3,4],

b = deepClone (a);

a [0] = 2;

console.log (a, b); // [2,2,3,4] [1,2,3,4]

5, el método de matriz de deduplicación

solución:

F1: .ES6 la serie:

dejar que arr = [1,1,2,3,4,5,5,6]

dejar que arr2 = [... nuevo Conjunto (arr)] // [1,2,3,4,5,6]

F2: reducir:

dejar que arr = [1,1,2,3,4,5,5,6]

dejar que arr2 = arr.reduce (function (ar, act) {

   if (! ar.includes (act)) {

     Arkpus (Cur)

   }

   ar retorno

}, [])

f3: filtro:

// Este método tendrá un problema: [1, '1'] es el mismo elemento que la entrada final de [1]

dejar que arr = [1,1,2,3,4,5,5,6]

dejar que arr2 = arr.filter (función (artículo, índice) {

  // indexOf devuelve el método () un valor de cadena de la posición especificada de la primera aparición de una cadena

  arr.indexOf retorno (punto) === índice

})

6, escriba lo que suceda URL?

solución:

una, DNS DNS (nombres de dominio en direcciones IP, protocolo de UTP vez, por lo que no hay apretón de manos): URL del navegador analizar un servidor correspondiente dirección IP (1. caché DNS en el navegador local para encontrar 2. de nuevo el sistema DNS caché Enviar solicitud 3. caché DNS de nuevo enrutador 4. el operador de red DNS caché de búsqueda recursiva), y desde el análisis sintáctico a cabo el número de puerto de la URL;

b, el navegador y el servidor de destino para establecer una conexión TCP (protocolo de tres vías);

c, el navegador envía al servidor una petición HTTP;

d, el servidor devuelve al navegador un mensaje de respuesta HTTP;

e, el navegador para la representación;

f, cerca de la conexión TCP (cuatro de onda).

Solución 2:

1. Introduzca la dirección URL;

2. enviados al servidor DNS, y adquiere el nombre de dominio correspondiente a la dirección IP correspondiente a un servidor web;

3. a establecer una conexión TCP a un servidor web;

4. navegador para enviar un servidor web HTTP solicitud;

responde servidor 5.web a la solicitud y devuelve los datos (o un mensaje de error, o redirección URL nueva dirección) para especificar la URL;

6. El navegador descarga los datos devueltos por el servidor web y analizar HTML archivo de origen;

7. generada árbol DOM, y el js análisis de la CSS, haciendo que la página, hasta que se complete la pantalla;

 

7, GET y POST solicita diferencia

solución:

Obtener URL pasan parámetros, POST coloca en el cuerpo;

GET parámetros de la petición aprobada en la url se limita la longitud, pero hay post;

GET de reserva cuando el navegador es inofensivo, y POST presentará la solicitud de nuevo;

Las peticiones GET son el navegador caché activa, la POST no, a menos que configurar manualmente;

POST es más seguro que conseguir, porque el parámetro url directamente expuesto, no puede ser utilizado para transmitir información sensible al tipo de datos del parámetro, GET acepta sólo caracteres ASCII, mientras que el poste no está limitado;

solicitudes GET solamente url (x-www-form-urlencoded) de codificación, y soportar una variedad de codificar puesto;

GET genera un paquete TCP; generando el poste dos paquetes TCP. Para la solicitud GET, el navegador http cabecera y los datos enviados junto con la respuesta del servidor 200 (datos de rendimiento). Para la POST, el navegador transmite la primera cabecera, la respuesta del servidor 100 continúan, el navegador y luego transmite los datos, en respuesta al servidor 200 OK (datos de retorno)

8, HTTPS de HTTP

solución:

HTTPS protocolo requiere la CA para solicitar un certificado, éste es poca necesidad generalmente libres de pago.

HTTP carreras protocolo en la parte superior de TCP, todos los contenidos se transmiten en texto claro, HTTPS se ejecuta a través de SSL / TLS, SSL / TLS se ejecuta a través de TCP, el contenido de todas las transmisiones están cifradas.

El uso de HTTP y HTTPS conexión es completamente diferente, con el puerto no son los mismos, el primero es 80, que es 443.

HTTPS puede prevenir con eficacia el secuestro de los operadores a resolver un gran problema de anti-secuestro.

9, el reloj diferencia, métodos y computado en?

solución:

una, los datos para monitorear los cambios en respuesta a un reloj. monitorear automáticamente el cambio en los valores calculados dependencia a la vuelta de forma dinámica, un objeto principal es simplificar el complejo de cálculo en la plantilla. Así que la diferencia proviene del uso, sólo tiene valores dinámicos, a continuación, utilizar calcula; ejecutar las necesidades de lógica de negocios para conocer el valor del cambio, sólo con un reloj.

b, métodos es un método que puede aceptar parámetros, y no puede ser calculado, la memoria caché puede ser calculado, no Métodos. puede ser calculado independientemente de otros computarizada, o incluso otros componentes de datos.

10, una matriz de relacionado

solución:

  1. La longitud de la push () aditivo elemento desde la parte posterior, se añade el valor de retorno después de la matriz
  2. pop () para eliminar los elementos de la parte posterior, es sólo se elimina un elemento del valor de retorno
  3. shift () devuelve un valor en frente de los elementos de la supresión, que sólo puede ser borrado de los elementos eliminados
  4. la unshift () para añadir elementos de lo anterior, se añade el valor de retorno después de la longitud de la matriz
  5. concat () devuelve una matriz de dos nueva matriz está conectado a la conexión
  6. split (i, j) se convierte en un separador i-- matriz de cadenas, por defecto para todos los caracteres nulos, incluyendo espacios, avance de línea (\ n-), lengüeta (\ t) y similares. j-- tiempos parciales. El valor predeterminado es -1, es decir, toda la partición
  7. sort () para ordenar la matriz, buen valor de retorno es una matriz de filas, el valor predeterminado está ordenada de acuerdo con el dígito más a la izquierda no está ordenada de acuerdo con el tamaño de las figuras
  8. reverse () array invierte, el valor de retorno es una matriz de la invertida
  9. Slice (inicio, final) para cortar el extremo de inicio índice del valor de índice de matriz, el índice no contiene el valor final, el valor de retorno es una matriz de corte a cabo  
  10. forEach (devolución de llamada) para iterar, no hay parámetros de retorno de devolución de llamada: valor - el valor actual del índice de índice - la matriz de índice - la matriz original
  11. Mapa (devolución de llamada) Mapping Array (iterate), hay una gran variedad de retorno para volver a nuevos parámetros de devolución de llamada: valor actual del índice item-- índice - el índice de arr - matriz original
  12. filtro (devolución de llamada) conjunto de filtros, un retorno a cumplir los requisitos de la matriz
  13. unirse método () para todos los elementos de la matriz en una cadena. Los elementos están separados por un delimitador especificado. El valor predeterminado es ,;

13, Promise.all () uso

Solución: Ejemplo Promise.all () ejecución por lotes, Promise.all ([p1, p2, p3]) una pluralidad de promesa por ejemplo, empaquetado en una nueva instancia Promise, de retorno es promesa común

Supongo que te gusta

Origin www.cnblogs.com/zaijin-yang/p/12509930.html
Recomendado
Clasificación