2022 La última versión del manual de preguntas de la entrevista del ingeniero de front-end

1  |  Conceptos básicos de front-end 11

1.1  |  HTTP/HTML/Navegador   11

          Habla sobre http y https 11

•      apretón de manos de tres vías tcp  , resumen de una oración   12

         La diferencia entre TCP y UDP12

     Implementación y aplicación   de WebSocket12

          Modo de solicitud HTTP , modo HEAD 13

• ¿      Cómo realizar la descarga directa después de visitar la url de una imagen ?     14

•      Charla sobre calidad  web  (accesibilidad)   14

• ¿          Varios métodos de objeto de atributo de lista de materiales muy prácticos ?

     Hable sobre  HTML5  drag  api   15

     Hable acerca de  http2.0   15

     Suplemento  400  y  401 , código de estado 403    15

• La razón por la que      fetch  envía  2  solicitudes   16

     La diferencia entre Cookie , almacenamiento de sesión y almacenamiento local    16

     Charla sobre  trabajadores web   17

        Comprensión de etiquetas semánticas HTML17

• ¿      Qué son los marcos flotantes ?  ¿Cuales son las desventajas?   17

• ¿      Cuál es el papel de Doctype  ?¿Cómo distinguir entre modo estricto y modo mixto? ¿Cuál es su significado?   17

         Cómo previenen las cookies los ataques XSS18 _

     La diferencia entre cookie y  sesión    18

     Resume  RESTFUL 18 en una oración

     Charla sobre la vista y el diseño de la terminal móvil     18

     Hay un retraso de 300 ms al hacer clic  en  ios  , ¿por qué y cómo solucionarlo?     18

     añadirEventListener  parámetro 19

     cookie  s sessionStorage  localStorage  diferencia   19

     diferencia de sesión de cookies     19

     Introducción a conocer  el código de estado   19 devuelto por http

     encabezado de solicitud común http    21

•      Fuerte caché negociado 24

     Hable acerca de 304   25

•      Almacenamiento en caché fuerte , cuándo negociar qué caché usar   25

     Optimización frontal   26

         La diferencia entre GET y POST26

     La diferencia entre 301  y  302   27

• Método         27 compatible con HTTP

•      Cómo dibujar un triángulo 27

     Códigos de estado  304  y   200 27

•      Hable sobre el almacenamiento en caché del navegador 28

     HTML5  nuevo elemento 28

     Introduzca una URL en la barra de direcciones y ¿  qué sucede cuando se muestra la página?    28

     La diferencia entre cookie  y  sesión  , la diferencia entre almacenamiento local y almacenamiento de sesiones     29

     Encabezados HTTP comunes    29

     Características    de HTTP2.030

• ¿      Cuáles son los valores de cache-control l    30

     Cuando el navegador genera la página , ¿cuáles dos árboles generará?   30

     Ataque a la red y prevención de c srf  y  xss   30

     Cómo ver el   rendimiento del sitio31

     Introducción al protocolo  HTTP  (características)   31

     Ingrese  la URL  de la página para cargar y mostrar completado ¿Qué sucedió? 31

     Cuénteme sobre su comprensión de las cookies y la sesión , ¿ cuáles son las limitaciones de las cookies ?         31

• ¿      Describir los ataques  XSS  y  CRSF  ? método de defensa?   32

• ¿      Conoces el  304  , cuándo usar el 304?    32

     Qué encabezados de solicitud específicos están relacionados con el almacenamiento en caché   32

     La diferencia entre cookie  y  sesión   33

     Qué campos de la cookie se pueden    configurar33

• ¿ Cuáles son los métodos de codificación      de las cookies ?    34

     Además de  las cookies , qué método de almacenamiento hay . Hable sobre  la diferencia entre cookie  y  localStorage 

3 4

     Todo el proceso desde la URL de entrada del navegador hasta la representación de la página   34

• ¿ Se      utilizan mucho HTML5  y  CSS3 ?  ¿ Conoces sus nuevas propiedades?  ¿Lo has usado en un proyecto?

3 4

     Métodos de solicitud comunes HTTP    35

         La diferencia entre obtener y publicar 35

     Hable sobre  el código de estado 302 , 301 , 304   35

       optimización del rendimiento web35

       Mecanismo de almacenamiento en caché del navegador36

• La      diferencia entre publicar  y  obtener    36

1.2  |  CS S   36

     Charla sobre el  modelo de caja CSS   36

     dibujar una  línea de 0.5px   38

• La diferencia entre las etiquetas      de enlace  y  las etiquetas de importación   38

     La diferencia entre transición y animación      38

     Diseño flexible38    _

•      BFC (contexto de formato a nivel de bloque , utilizado para borrar flotantes , evitar  márgenes superpuestos  , etc. )   39

     Método de centrado vertical   40

     Diferencias entre  animación JS y animación  CSS 3     41

     Hablar sobre   elementos de bloque y fila42

• Puntos suspensivos de texto para      elementos de varias líneas   42

•      visibilidad=oculto ,  opacidad=0 , pantalla:ninguna   42

•      Problema de superposición de márgenes de doble cara (colapso de márgenes)   42

     comparación de propiedades de posición      4 3

     Flotador Claro   43

     nuevas características de css3   44

•      Qué son los  selectores de CSS y   su prioridad44

• ¿      Me puede decir el método para limpiar el flotador   44

•      Cómo hacer desaparecer un elemento , hablar de 45

     Presentamos la caja modelo   45

     atributos relacionados con la posición   45

• Cómo lograr      la animación CSS   46

• ¿      Cómo realizar el centrado de cuadros en un determinado contenedor?   46

•      Cómo lograr el centrado vertical de los elementos 46

     Manejo de desbordamiento en CSS3    47

     elementos flotantes  , ¿qué es la pantalla    47

     Cómo ocultar un elemento en una página   47

     La implementación del diseño de tres columnas debe  escribirse tanto como sea posible .  En el diseño flotante ,  el orden de generación de los tres  divs es el siguiente: 

ningún efecto 47

• ¿      Qué es  BFC   48 ?

     propiedad calc    48

     Hay un  ancho 300 , alto 300 , cómo lograr el centrado vertical y horizontal en la pantalla   48

     pantalla : ¿Cuál es la diferencia entre la tabla t y su propia tabla      49

     Cuáles son los valores del atributo posición y sus diferencias   49

     método de posicionamiento del índice z   49

• ¿      Qué sucede si desea cambiar el color de fuente de un  elemento DOM  sin operar en él mismo?   49

• ¿      Ha aprendido alguna vez acerca de  las nuevas propiedades de CSS ?    49

• ¿ Cuál es la propiedad      css más utilizada  ?    50

     La diferencia entre la altura de la línea  y  la altura   50

•      Al configurar el color de fondo de un elemento , ¿qué áreas llenará el color de fondo?   50

• ¿      Conoce la prioridad de los selectores de atributo y los selectores de pseudoclase?   50

     La diferencia entre inline-block , inline  y  block  ; también se puede configurar por qué img está en línea     

Establecer ancho y alto a 50

     Usa  css para lograr  el efecto de una rotación de monedas 50

• ¿ Sabe cómo volver a dibujar y reorganizar, sabe cómo reducir el redibujar y reorganizar y mantener el documento fuera del flujo de documentos?

qué métodos52

•      CSS  dibujar cubo , triángulo   52

     El principio de desbordamiento    54

     Método de flotación clara   54

     Sintaxis y usos básicos de box-sizing   54

• ¿      Cuáles son las formas de hacer desaparecer elementos?   55

     Las posiciones de dos  divisiones anidadas son ambas absolutas , y la división secundaria establece el atributo superior , luego      

¿Dónde se coloca esta parte superior en relación con el elemento principal? 55

•      Charla sobre la caja modelo 55

     pantalla 55 _

•      Cómo ocultar un elemento 55

     La diferencia entre display:none  y  visibilty:    hidden56

•      Disposición relativa y disposición absoluta ,  posición: relativa  y  obsoluta.   56

     diseño flexible56    _

     La diferencia entre block , inline y inline-block  . 57

     Selectores comunes de css   57

     diseño css   57

     posicionamiento css   58

     regla de posicionamiento relativo   58

     Centro vertical   59

• ¿ Qué es el      preprocesador css   59?

1. 3  |  JavaScript 59

• Malentendido de      la longitud del parámetro de solicitud de obtención   59

     Complemente la diferencia  entre las solicitudes get y  post en el almacenamiento en caché     59

     Hablar de cierres   60

     Charla sobre la creación y herencia de clases   60

     Cómo resolver el infierno de devolución de llamada asincrónica   62

•      Hable sobre el flujo de eventos en el front-end 62

•      Cómo hacer que el evento burbujee primero y luego capture 62

     Charla sobre delegación de eventos   63

•      Hable sobre la carga diferida y la precarga de imágenes 63

     La diferencia entre mou seover  y  mouseenter    63

• ¿ Qué hace          el nuevo operador de JS 63

•      Cambiar la función de señalar de  este  puntero dentro de la función ( la diferencia entre enlazar , aplicar y llamar  )   63

•      Varias posiciones de JS  , como clientHeight, scrollHeight, offsetHeight y   

¿Cuál es la diferencia entre scrollTop, offsetTop y clientTop? 64

     Implementación de la función de arrastrar y soltar de JS   64

     Método de carga de JS de forma asíncrona    64

     Ajax  resuelve el problema de almacenamiento en caché del navegador 65

     Regulación y estabilización JS    65

• Mecanismo         de recolección de basura en JS65

     qué    hace eval67

•      Cómo entender la modularidad de front-end 67

     Charla sobre  CommonJS , AMD  y  CMD 67

•      Implementación simple de clonación profunda de objetos68

     Implementar una  función única  , los parámetros de función entrantes solo se ejecutan una vez 68

• Encapsule      ajax nativo  en la promesa    68

     JS  escucha los cambios en las propiedades del objeto   69

     Cómo implementar una variable privada , a la que se puede acceder mediante  el método getName  , pero no directamente   69

     La diferencia entre == y === , y  Object.is    70

     La diferencia entre setTimeout , setInterval  y  requestAnimationFrame    70

•      Realizar un diseño de dos columnas de igual altura , hablar de ideas   71

     Implemente una  función de vinculación usted mismo   71

     Usar  setTimeout  para implementar  setInterval 71

• ¿ Cómo controla      JS  la carga de una imagen a la vez y luego carga la siguiente imagen después de cargar 72

     Secuencia de ejecución del código   73

     Cómo lograr el efecto del  sueño  (es5  o  es6 )   73

     Simple cumplimiento de una  promesa 74

• ¿      Qué es Function._proto_(getPrototypeOf)?   75

     Realice una clonación profunda de todos los objetos en  JS  (objeto envolvente , objeto   de fecha , objeto normal ) .

     Implementación simple del  módulo de Eventos de Node     77

     este punto en la función de flecha  Ejemplo   78

     Sentencia JS tipo   79

•      Métodos comunes de matrices 79

     Deduplicación de matrices   79

     Para qué sirven los cierres     79

•      Aplicación práctica de event proxy en fase 80

•      Eliminar los espacios iniciales y finales de la cadena 80

     Optimización del rendimiento   80

     Hablemos de  cierres en JS   80

• ¿      Puede hablar sobre  las características de lenguaje de JS   81 ?

     Cómo juzgar una matriz (casi se cae al pozo cuando se trata de  typeof  )   81

     Cuando habla de  typeof, ¿puede agregar una restricción para cumplir con la condición de juicio 81?

     JS  implementa dominios cruzados 81

     Tipos de datos básicos de JS    82

     La implementación específica de JS  copia profunda de un elemento   82

     Dije antes que  ES6set  puede deduplicar arreglos ¿ Hay algún método para deduplicar arreglos   ?

•      Reorganizar y redibujar , hablar sobre 82

     Permutación completa   de JS83

     El principio de dominio cruzado   83

•      La comparación de valores de diferentes tipos de datos, cómo convertir y cuáles son las reglas 83

     nulo  ==  indefinido por qué    84 _

• ¿      Qué tipo de este  punto a     84

     Pausa zona muerta   85

     Principio de enlace bidireccional de AngularJS   85

     Escribir una copia profunda   85

     RequestAnimationFrame se menciona en el currículum  , ¿ cómo se usa ?86

     Hay un juego llamado  Flappy  Bird , donde un pájaro está volando y  hay un desierto sin fin frente a él .

Hay tuberías de acero que se generan constantemente hacia arriba y hacia abajo ,  debe evitar las tuberías de acero . Luego, cuando Xiao Ming estaba jugando este juego, siempre se atascaba o incluso

Al choque, di el motivo (3-5) y la solución (3-5) .......................... .... .. 86

•      Escribir código que cumpla las siguientes condiciones:    (1) Hero("37er"); el resultado de la ejecución es  ¡Hola!  Esto es 37er (2 ) Hero("37er").kill(1).recover(30); la ejecución el resultado es ¡Hola! Esto es 37er Mata 1 error Recupera 30 sangres (3 ) Hero("37er").sleep(10).kill(2) el resultado de ejecución es ¡Hola! Esto es 37er // Espera 10 segundos y mata 2 errores / / Tenga en cuenta que son errores                                 

(El mensaje después de la doble barra es un mensaje de solicitud, que no necesita imprimirse) 87

     Qué es la carga bajo demanda   88

     Dime qué  es virtual dom    88

     Para qué se usa el paquete web    88

     Ant-diseño  ventajas y desventajas 88

•      Varias formas de implementar la herencia en JS ,    88

     Escribe una función que imprima  1 en el primer segundo y 2 en el segundo   89

     Ciclo de vida de Vue    89

     Introduzca brevemente  el símbolo   90

• ¿      Qué es el detector de eventos   90?

     Introducir  la promesa y cómo implementarla en la parte inferior   91

•      Hablar sobre  las diferencias entre C++, Java y JavaScript   92

     Cadena de prototipos JS  , ¿cuál es la parte superior de la cadena de prototipos? ¿ Cuál es el prototipo de Object ? prototipo de objeto     

¿De qué es el prototipo? Realice el método de eliminación de datos duplicados de la matriz en la cadena de prototipos de matriz 93

• ¿      Qué es  el cierre de js ?  ¿Cuál es el efecto , escriba un patrón singleton con cierre 96

     Uso de promise+Generator +Async    96

     Delegación de eventos y principio de burbujeo . 100

     Escriba una función que pueda convertir nombres de guiones bajos en nombres de mayúsculas y minúsculas 101

     La diferencia entre copia clara y oscura y su implementación   101

     La diferencia entre startwith e indexof de cadena en JS         102

• Método de cadena      JS  al número   103

     La diferencia entre let  const  var  , qué es el alcance a nivel de bloque y cómo implementar bloques con métodos ES5     

Ámbito de clase (función ejecutada inmediatamente ), ES6 103

• Características de      las funciones de flecha ES6   103

     Secuencia de ejecución de setTimeout  y  Promise   103

• ¿      Has aprendido sobre el modelo de eventos ?,  ¿Cuál es la diferencia entre DOM0  y  DOM2  ?, ¿Cuál es la clasificación de DOM ? 

10 4

     Por lo general, cómo     depurar JS 105

• ¿      Cuáles son los tipos de datos básicos de JS  , la diferencia entre los tipos de datos básicos y los tipos de datos de referencia , NaN es   

什么的缩写 JS 的作用域类型 undefined==null 返回的结果是什么 

undefined与null的区别在哪,写一个函数判断变量类型105

     setTimeout(fn,100);100 毫秒是如何权衡的  106

     JS 的垃圾回收机制 106

     写一个 newBind 函数完成 bind 的功能 107

•     怎么获得对象上的属性比如说通过 Object.key()  107

     简单讲一讲 ES6 的一些新特性 107

     call  apply 是用来做什么?  108

•     解事件代理吗这样做有什么好处 108

• ¿      Cómo redactar una herencia?   108

     Dado el siguiente código, ¿cuál es el resultado? ¿razón?   para(var  i=0;i<5;i++) 

{  establecer tiempo de espera (función () {  console.log (i);  }, 1000);  }  consola.log(i)

11 0

     Dados dos constructores  A  y  B , ¿ cómo darse cuenta de que  A  hereda  B ?   110

• Preguntar si      el índice   110 se puede imprimir normalmente

•      Si ya tiene tres  promesas , A , B  y  C , y desea ejecutarlas en serie ,  ¿cómo debe escribirlas?   110

• ¿      Conoces el       111 público y privado ?

        Fundamentos de JS 111

• ¿      Cómo usar async  y  await  ?   111

     Saber qué  sintaxis ES6 , ES7    111

     La relación entre promesa  y  await/async   111

     Tipos de datos JS   112

     Se bloquea el proceso de carga de JS  , la solución . 112

• La diferencia entre      el tipo de objeto JS  , el tipo de objeto básico y el tipo de objeto de referencia 112

• ¿      Cuál es el principio de implementación del carrusel en JavaScript ? Si hay dos carruseles en una página , ¿qué harías? 

¿lograr? 112

• ¿      Cómo implementar un cálculo de cuántas semanas hay en un año?   112

•      Herencia Orientada a Objetos 113

     Tipos de datos JS   114

•      Objetos de referencia tipo común 114

     Común    114 de es6

     clase   114

     Matriz de dictado para deduplicar 115

     Herencia   115

     La diferencia entre llamar  y  aplicar    116

     Características comunes de es6    116

• ¿      Cuál es la diferencia entre la función de flecha y  la función    116 ?

• El principio del      nuevo  operador   116

     vincular, solicitar , llamar al   117

     La diferencia entre vincular  y  aplicar    117

     Deduplicación de arreglos   117

     Cierres   117

     cumplimiento de promesa   118 _

     copia profunda de la asignación    119

     Decir  promesa , qué hacer sin  promesa    120

     Delegación de eventos   120

     La diferencia entre la función de flecha  y la función    120

     argumentos   121

     Las funciones de flecha toman  argumentos 121

     Promesa 121

     Proxy de eventos   121

     Bucle de eventos   122

2  |  núcleo frontal 122

2.1 |  Programación del servidor   122

     Desventajas de JSONP   122

•      Dominio cruzado (jsonp , ajax)   122

     Cómo implementar dominios cruzados 122

• ¿      Qué es dom  , según tu comprensión?   123

• ¿      Qué es la API sobre  dom      12 3

2.2  |  Ajax 123

• Estado         123 devuelto por ajax

     Implementar  un Ajax 123

     Cómo implementar  la solicitud ajax  , si tengo varias solicitudes , necesito hacer estas solicitudes ajax de acuerdo con   

¿Hay alguna forma de ejecutar una determinada orden a la vez? Cómo lidiar con ajax cross-domain 124

     Escribe nativo  A jax 126

• ¿   Cómo implementar una  solicitud ajax ?  ¿Qué debo hacer si quiero emitir dos  ajax secuenciales  ?

12 6

• ¿      Cuáles son las ventajas y desventajas de Fetch  y  Ajax ?    127

     aj ax      127 en JS nativo

2.3  |  Desarrollo web móvil     127

     ¿ Conoces  PWA1    27 ?

     Esquema de diseño móvil 127

     Rem,  Em 128

     diseño flexible y sus ventajas y desventajas   129

• Diseño      Rem  y sus pros y contras 130

     Diseño de porcentaje   131

     El terminal móvil se adapta al  problema de 1px    132

•      Experiencia relevante en la optimización del rendimiento de terminales móviles 134

• La diferencia entre      los proyectos toB  y  toC   134

     Compatibilidad móvil 134

     subprograma 135

     Figura 2X Figura  3X Adaptación     135

• La imagen      está borrosa en algunos dispositivos con Android   136

• El teclado      de diseño de posicionamiento fijo bloquea el contenido del cuadro de entrada   136

• Problema de retraso      de 30 0 ms de clic  y problema de penetración de clic     136

     La sombra interna predeterminada del cuadro de entrada debajo del teléfono y el ipad es     137

     Evite acercar y alejar páginas   137

     La diferencia entre px , em , rem , % , vw , vh , vm   138

     Adaptación terminal móvil -  análisis dpr    138

•      Área de clic de extensión móvil 138

     Cuando la barra de desplazamiento se mueve hacia arriba y hacia abajo, se congela y se ralentiza   138

•      Mantenga presionada la página durante mucho tiempo y retroceda 138

     Aparece una máscara gris translúcida cuando se tocan elementos en ios  y  android    139

     el procesamiento compatible activo es  una pseudoclase : activo no válido       139

     procesamiento compatible con la máscara webkit     139

     Pantalla de inicio de transición    140

     error de esquinas redondeadas   140

3  |  Interfaz avanzada 141

3.1  |  Ingeniería de front-end   141

• ¿      Cuál es el principio de Babel ?    141

• ¿      Cómo escribir un  complemento de babel ?   141

• ¿ Cómo es      su flujo de trabajo  de git  ? 145

• ¿ Cuál es la diferencia entre      rebasar e  y  fusionar  ? 150

• ¿      Cuál es la diferencia entre git  reset , git  revert  y  git  checkout    ? 151

• La diferencia entre      webpack  y  gulp  (la diferencia entre modularización y flujo )   153

3.2 | Framework Vue     153 _

• ¿      Alguna vez has usado  Vu e  ? Hable acerca de su  comprensión de Vue    153

     Hable sobre  las ventajas y desventajas de Vue   153

• ¿ En qué se      diferencia Vue  de  React ?  ¿Cuáles son los escenarios de uso?   154

• ¿      Qué es  el DOM virtual ?   154

     Describa  cuál es el ciclo de vida de vue ?    154

• ¿ Cómo monitorea      vue  los eventos del teclado?   157

• ¿      Cómo monitorea en profundidad los cambios en los objetos    ? 158

• ¿      Cuál es la diferencia entre delete y Vu e.delete para eliminar una matriz ?       158

• ¿      Cuál es la diferencia entre un reloj y una propiedad calculada ?    158

     Principio de enlace bidireccional de Vue   159

• ¿      Qué es el modelo v ? ¿Cuál es la función?    159

• ¿ Qué es      axios  ? cómo usarlo ¿Cómo resolver el problema   de los dominios cruzados ? 159

• ¿      Cómo introducir bibliotecas de terceros (como jQuery ) en  el proyecto vue  ? ¿Cuáles son las formas de hacerlo? 

15 9

     Hable sobre  la diferencia entre Vue  React  y gularjs  jquery   160

• ¿      Por qué usar Proxy API en lugar de defineProperty API en Vue3.0  ?        160

• ¿      Qué optimizaciones compiló Vue 3.0 ?    16 0

     Nuevas funciones de Vue3.0  : similitudes y diferencias entre la API de composición I y Hooks en React.js        

16 1

• ¿      Cómo se volvió más rápido Vue3.0  ? (capa inferior , código fuente)   163

• ¿      Cómo debe hacer vue la administración de permisos?  ¿ Qué sucede si los permisos se controlan a nivel de botón ?   164

• ¿ Cuál es la diferencia entre      vue solicitando datos  en los ciclos  de vida creados y montados ?   

16 4

     Hable acerca de su  comprensión de proxy    164

3.3  Marco  de reacción   165

     La diferencia entre angular Js  y  React   165

     redux  middleware165 _

• ¿      Cuáles son las desventajas de red ux   165 ?

• ¿ División de los componentes      de React  en componentes comerciales y componentes técnicos ?   165

     Función de ciclo de vida de React   165

• ¿      Qué función periódica es la optimización del rendimiento de React ?    166

• ¿ Por      qué virtual  dom mejora el    rendimiento ?

     algoritmo diferencial  167   _

     Solución de optimización del rendimiento de React   167

     Una breve introducción  al  pensamiento de flujo   167

• ¿      Qué andamios usaste para el proyecto React ?  Mern Yeoman     168

     ¿ Conoces  React  ?   168

• ¿ Qué problema resuelve      React  ?   168

• ¿      Protocolos en React ?    168

• ¿      Comprendes  shouldComponentUpdate  ?   168

• ¿      Cómo funciona React ?    168

• ¿      Cuáles son las ventajas de usar  React  ?   169

         (Presentational  component)      (Container 

component)之间有何不同?169

•     类组件(Class component)和函数式组件(Functional component)之间有

何不同?169

     (组件的)状态(state)和属性(props)之间有何不同?  170

     应该在 React 组件的何处发起 Ajax 请求?  170

      React  refs 的作用是什么?  170

     何为高阶组件(higher order component)?  170

     使用箭头函数(arrow functions)的优点是什么?  170

• ¿ Por qué se recomienda que  el parámetro pasado a  setState sea una  devolución de llamada en lugar de un objeto?  

17 1

• Además de enlazar      esto en el constructor  , ¿hay alguna otra forma?   171

• ¿ Cómo prevenir      el renderizado de componentes ?   171

     Al renderizar una lista , ¿ cuál es  la clave?  ¿ Cuál es el propósito de configurar la clave ?    171

• ¿      Qué es  JSX  ?   172

3.4  Marco  Angular    172 _

     Formas de comunicación entre componentes en Angular   172

     Ocho componentes de Angualr y una breve descripción   172

     Funciones comunes de enlace de ciclo de vida    en Angular 173

     Cómo funciona el enrutamiento en Angular    17 3

     Explicar  los escenarios de uso de rjx  en  Angular    173

1  |  Conceptos básicos de front-end

1.1  |  HTTP/HTML / Navegador

    Habla sobre  http  y  https

Respuesta de referencia :

El cifrado HTTPS SSL se implementa en la capa de transporte  .  

(1)  Conceptos básicos de http y  https 

http:  Protocolo de transferencia de hipertexto , el protocolo de red más utilizado en Internet,  es un estándar de solicitud y respuesta (TCP ) de cliente y servidor, utilizado para transmitir hipertexto desde servidores WWW a navegadores locales  , lo que puede hacer que los navegadores sean más eficientes y reducir la red. transferencias _

https: Es un  canal HTTP con el objetivo de la seguridad . En pocas palabras, es una versión segura de HTTP , es decir, se agrega una capa SSL debajo de HTTP . La base de seguridad de HTTPS es SSL , por lo que el contenido detallado de cifrado requiere SSL .        

La función principal del protocolo https es establecer un canal de seguridad de la información para asegurar la transmisión de la matriz y garantizar la autenticidad del sitio web .

(2) ¿Cuál  es la diferencia entre http y  https ? 

 Los datos transmitidos por http no están encriptados , es decir, en texto sin formato . Netscape ha configurado  el protocolo SSL  para encriptar los datos transmitidos por  el  protocolo http . En pocas palabras , el protocolo https está construido por los protocolos http ssly , que es más seguro que el protocolo http .      

Las principales diferencias son las siguientes :

El protocolo Https requiere un certificado ca , que cuesta mucho .

Http  es un protocolo de transferencia de hipertexto , la información se transmite en texto sin formato y https  es un  protocolo seguro de transferencia encriptado SSL .

Los diferentes métodos de conexión tienen diferentes puertos . En términos generales , el puerto del protocolo http es 80 y el puerto de https es 44 3 

La conexión http  es muy simple y sin estado ;  el protocolo HTTPS  es un protocolo de red construido por el protocolo SSL+HTTP que puede realizar transmisiones cifradas y autenticación de identidad , y es más seguro que  el protocolo http  .

(3)  Principio de funcionamiento del protocolo https

Cuando el cliente utiliza  HTTPS para comunicarse  con el servidor  web  , existen los siguientes pasos , como se muestra en la figura .

Si el cliente utiliza  la URL https  para acceder al servidor , se requiere que el servidor web establezca un enlace SSL .     

Después de que el  servidor web reciba la solicitud del cliente ,  devolverá o transmitirá el certificado del sitio web (el certificado contiene la clave pública ) al cliente .

El cliente y el  servidor web  comienzan a negociar el nivel de seguridad de la  conexión SSL  , es decir, el nivel de encriptación .

El navegador del cliente establece la clave de sesión a través del nivel de seguridad acordado por ambas partes ,  y luego encripta la clave de sesión con la clave pública del sitio web y la transmite al sitio web .

El servidor web  descifra la clave de sesión con su propia clave privada .

El servidor web  encripta la comunicación con el cliente a través de la clave de sesión .

(4) Ventajas del protocolo https 

Use  el protocolo HTTPS para autenticar usuarios y servidores para garantizar que los datos se envíen al cliente y al servidor correctos ;

El  protocolo HTTPS es un protocolo de red construido por el protocolo SSL+HTTP que puede realizar transmisiones cifradas y autenticación de identidad . Es más seguro que el protocolo HTTP  y puede evitar que los datos sean robados o modificados durante la transmisión y garantizar la integridad de los datos .      HTTPS es la solución más segura bajo la arquitectura actual Aunque no es absolutamente seguro , aumenta considerablemente el costo de los ataques de intermediarios . 

Google ajustó el algoritmo de su motor de búsqueda en  agosto de 2014 , afirmando  que "los sitios cifrados con HTTPS ocuparán  un lugar más alto en los resultados de búsqueda que los sitios HTTP equivalentes " .      

(5) Desventajas del protocolo https 

La fase de protocolo de enlace https  requiere mucho tiempo , lo que aumentará el tiempo de carga de la página en un  50 % y aumentará el consumo de energía en un 10 %~20 % .

La memoria caché https  no es tan eficiente como http , lo que aumentará la sobrecarga de datos .

Los certificados SSL  también cuestan dinero , y los certificados más potentes cuestan más .

El  certificado SSL debe estar vinculado a  una IP y varios nombres de dominio no pueden vincularse a la misma  IP Los recursos de  IPv4 no pueden admitir este tipo de consumo .  

    apretón de manos de tres vías tcp  , resumen de una oración

Respuesta de referencia :

Tanto el cliente como el servidor deben esperar hasta que puedan enviar y recibir , por lo que se requiere un protocolo de enlace de tres vías .

Apretón de manos simplificado de tres vías :

<img   width="487"   alt="2018-07-10   3      42   11   " src= "https://user-images.githubusercontent.com/17233651/42496289-1c6d668a-8458-11e8-98b3-           65db50f64d48.png " >

A partir de la imagen, el protocolo de enlace de tres vías se puede simplificar como :  C  inicia una solicitud para conectarse a  S  para confirmación , y también inicia una conexión a  C  para confirmación. Veamos la función de cada protocolo de enlace : el primer protocolo de enlace :  S  puede solo confirme  que puede aceptar el segmento enviado por C No.

El segundo apretón de manos : C  puede confirmar que  S  ha recibido el segmento enviado por sí mismo , y puede confirmar que  puede aceptar  el segmento enviado por S. El tercer apretón de manos  : S puede confirmar que C ha recibido el segmento enviado por él mismo  

    La diferencia entre TCP  y  UDP 

Respuesta de referencia :

(1 ) TCP  está orientado a la conexión y  UDP  no tiene conexión, es decir, no es necesario establecer un enlace antes de enviar los datos .

(2 ) TCP  brinda un servicio confiable . Es decir ,  los datos transmitidos a través  de la conexión TCP  están libres de errores , no se pierden ,  no se repiten y llegan en orden; UDP hace todo lo posible para entregar , es decir, no garantiza una entrega confiable . Y debido a que tcp es confiable ,  está orientado a la conexión y no perderá datos, es adecuado para el intercambio de grandes cantidades de datos .     

(3 ) TCP  está orientado a bytes ,  UDP  está orientado a paquetes y la congestión de la red no reducirá la tasa de envío (por lo que habrá pérdida de paquetes , para aplicaciones en tiempo real como  telefonía IP y videoconferencia, etc. ).

( 4 ) TCP  solo puede ser  1  a  1  , UDP admite 1 a 1, 1 a muchos .      

(5 ) El encabezado de TCP tiene  20 bytes como máximo , mientras que UDP tiene solo 8 bytes .      

(6 ) TCP  es una transmisión confiable orientada a la conexión , mientras que UDP no es confiable .

    Implementación y aplicación de WebSocket 

Respuesta de referencia :

(1) ¿ Qué es  WebSocket ?

WebSocket es un protocolo en HTML5 que admite conexiones persistentes.El protocolo http no admite conexiones persistentes . Tanto Http1.0 como HTTP1.1 no admiten enlaces persistentes.Keep - alive en HTTP1.1 combina varias solicitudes http en una          

(2) ¿  Qué tipo de protocolo es WebSocket y cuáles son sus ventajas ?

 El ciclo de vida de  HTTP está definido por Solicitud  , es decir, Solicitud es una Respuesta , por lo que en el protocolo Http1.0 , esta solicitud Http ha terminado . Se ha mejorado en Http1.1 , hay conexión : Keep-alive , es decir , en una conexión Http se pueden enviar múltiples Solicitudes y se pueden recibir múltiples Respuestas . Pero hay que recordar que una Petición en Http sólo puede corresponder a una Respuesta , y esta Respuesta es pasiva y no puede ser iniciada activamente .             

WebSocket  se basa en el protocolo Http , o se toma prestado del protocolo Http para completar parte del protocolo de enlace , que es lo mismo que Http en la fase de  . Veamos la implementación de un protocolo de protocolo de enlace websocket , básicamente dos atributos ,    actualización , conexión .     

La solicitud básica es la siguiente :

OBTENER /  chat  HTTP/1.1

Host :  server.example.com

Actualizar :  websocket

Conexión:  Actualizar

S ec-WebSocket-Clave:  x3JJHMbDL1EzLkh9GBhXDw==

Se c-WebSocket-Protocol:  chat,  superchat

Sec- WebSocket-Versión: 13

Origen :  dominio de ejemplo

Se añaden los siguientes  dos  atributos :

1

2

Actualizar : webSocket

Conexión : Actualizar

Dile al servidor que envíe  websocket

1

2

3

S ec-WebSocket-Clave:  x 3 JJHMbDL 1 EzLkh 9 GBhXDw==

Sec-WebSocket-Protocol:  chat,  superchat

Sec-WebSo cket-Versión:   13

    Método de solicitud HTTP  , método HEAD  

Respuesta de referencia :

head : similar a  una solicitud de obtención , excepto que no hay contenido específico en la respuesta devuelta y el usuario obtiene el encabezado

opciones : permite al cliente ver el rendimiento del servidor , como los métodos de solicitud admitidos por el servidor, etc.

• ¿     Cómo realizar la descarga directa después de visitar la url de una imagen ?  

Respuesta de referencia :

En el encabezado de retorno de la solicitud , el parámetro importante para el análisis del navegador es el   encabezado http de retorno en el documento API de OSS  , que determina el comportamiento de descarga del usuario .   

En caso de descarga :

1.  x-oss -tipo de objeto: Normal

2.  x -oss-request-id:     598D5ED34 F29D01FE2925F41

3.  clase de almacenamiento x-oss : estándar

    Charla sobre calidad  web  (accesibilidad )

Respuesta de referencia :

Un sitio web usable (accesible ) es aquel que puede ser utilizado por personas con discapacidades .  Las personas con discapacidad se refieren a aquellos usuarios con discapacidades o condiciones médicas .

Usa  el  atributo alt :

<img  src="persona.jpg"    alt="esta  es  una  persona"/>

A veces, los navegadores no pueden mostrar imágenes . Las razones específicas son :

El usuario desactivó la visualización de imágenes

El navegador es un mini-navegador que no admite visualización de gráficos

El navegador es un navegador de voz (para personas ciegas y con baja visión )

Si usa  el atributo alt ,  el navegador puede al menos mostrar o leer una descripción de la imagen .

• ¿     Varios  métodos de objeto de atributo BOM muy prácticos? 

Respuesta de referencia :

¿Qué es  Bom?  Bom es el  objeto del navegador . ¿Cuáles son los atributos Bom comúnmente utilizados ?  

( 1)  objeto de ubicación

location.href -  devuelve o establece  la URL del documento actual

location.search : devuelve la cadena de consulta que forma parte  de la URL . ejemplo   

Si  ocurre un error en el sistema   , devolver el contenido después de (?) ?id=5&n ame=dreamdu 

location.hash  --  devuelve el contenido después de la URL # , si no hay # , devuelve un valor vacío location.host   -- devuelve la parte del nombre de dominio en la URL , como www.dreamdu.com  location.hostname  --  devuelve la parte principal parte del nombre de dominio en la URL , por ejemplo, dreamdu.com   

location.pathname : devuelve la parte de la URL después del nombre de dominio  . ejemplo   

Si  ocurre un error en el sistema,   devuelve /xhtml/

localizar ion.port  -  devuelve  la parte del puerto de la URL  . ejemplo

Por ejemplo, http://www.dreamdu.com:8080/xhtml/   devuelve  8080

localizar.protocolo : devuelve la  parte del protocolo de la URL . ejemplo   

Por ejemplo, http://www.dreamdu.com:8080/xhtml/   devuelve el contenido  http:

location.assign  --  establecer la URL del documento actual 

location.replace()  --Establezca  la URL del documento actual y elimine esta URL de la lista de direcciones del objeto de historial location.replace (url);  

location.reload()  --  recargar la página actual

(2 )  objeto de historial

history.go()  --Hacia adelante  o hacia atrás el número especificado de páginas history.go(num);

history.back () --  Retrocede una página

history.forward() -- avanzar una página

(3) Objeto navegador 

navigator.userAgent  : devuelve una representación de cadena del encabezado del agente de usuario (es decir,  una cadena que incluye información de la versión del navegador, etc. )

navigator.cookieEnabled  : devuelve si el navegador admite (habilita) las cookies

    Hable acerca de  la API de arrastre de HTML5  

Respuesta de referencia :

dragstart : El cuerpo principal del evento es el elemento arrastrado y soltado , que se activa cuando el elemento arrastrado y soltado comienza a arrastrarse y soltarse .

darg : el cuerpo del evento es el elemento arrastrado y soltado ,  que se activa cuando el elemento arrastrado y soltado se está arrastrando y soltando .

dragenter : El cuerpo del evento es el elemento de destino , que se activa cuando el elemento arrastrado ingresa a un elemento .

arrastre : el cuerpo del evento es el elemento de destino , que se activa cuando se arrastra y se mueve dentro de un elemento .

dragleave : el cuerpo del evento es el elemento de destino y se activa cuando el elemento arrastrado sale del elemento de destino .

soltar : el cuerpo del evento es el elemento de destino , que se activa cuando el elemento de destino acepta por completo el elemento arrastrado y soltado .

dragend : el cuerpo del evento es el elemento que se está arrastrando y soltando , que se activa cuando finaliza toda la operación de arrastrar y soltar

    Hable acerca de  h ttp2.0

Respuesta de referencia :

En primer lugar , permítanme agregar  la diferencia entre http  y https  . En comparación con http, https es un  protocolo http basado en el cifrado SSL .       

Breve resumen :  http2.0  se basa en la primera actualización posterior a http1.0 lanzada en 1999 .

Mejorar la velocidad de acceso (se puede usar para requerir menos tiempo para solicitar recursos y una velocidad de acceso más rápida ,  en comparación con  http1.0 )  Permite la multiplexación : la multiplexación permite enviar varias solicitudes simultáneamente a través de una única  información de respuesta de conexión HTTP/2 .  Mejorado : en  http1.1 , el cliente del navegador tiene una cierta cantidad de solicitudes (cantidad de conexiones ) para el mismo nombre de dominio al mismo tiempo , y si excede el límite, se bloqueará .

Trama binaria :  HTTP2.0  dividirá toda la información de transmisión en información o tramas más pequeñas y las codificará en binario.

compresión de encabezado

empuje del lado del servidor

    Suplemento  400  ,  401 , 403  códigos de estado

Respuesta de referencia :

 ( 1 ) Código de estado 400 : solicitud no válida Causa :                                                                   el nombre del campo y el tipo de campo de los                    datos enviados por el front-end no son coherentes con las entidades en el back-end convertidas en una cadena .                                                              Solución :                                                                   compare el nombre del campo para mantener la coherencia y                                                  serialice el objeto obj a través de JSON.stringify         

 (2) código de estado 401 : la solicitud actual requiere autenticación de usuario

 (3) Código de estado 403 : el servidor ha recibido la solicitud ,  pero se niega a ejecutarla

• La razón por la que     fe tch  envía  2  solicitudes

Respuesta de referencia :

 Cuando fetch envía  una solicitud de publicación  , siempre la envía dos veces . El primer código de estado es 204 , y la segunda vez, ¿tiene éxito ? La razón es muy simple , porque cuando usa la solicitud posterior de fetch , fetch envía una solicitud de Opciones por primera vez , preguntando si el servidor admite el encabezado de solicitud modificado , y si el servidor lo admite , luego envía la solicitud real en el segunda vez      

    La diferencia entre Cookie , almacenamiento de sesión y almacenamiento local 

Respuesta de referencia :

Lo que tienen en común: todos se guardan en el lado del navegador  y son del mismo origen

Cookie : los datos de las cookies siempre se transportan en la solicitud  http de la misma fuente  (incluso si no se requiere ) , es decir, la cookie se pasa de un lado a otro entre el navegador y el servidor . Sin embargo, sessionStorage y el almacenamiento local no enviarán datos automáticamente al servidor , sino que solo los guardarán localmente . Los datos de cookies también tienen el concepto de ruta (ruta ) , que puede limitar las cookies para que solo pertenezcan a una determinada ruta, y el tamaño de almacenamiento es muy pequeño, solo alrededor de 4K . (clave : se puede pasar de un lado a otro entre el navegador y el servidor , y la capacidad de almacenamiento es pequeña , solo alrededor de 4K )             

sessionStorage : Sólo es válido hasta que se cierra la ventana del navegador actual , por lo que es naturalmente imposible mantenerlo de forma persistente .

localStorage : siempre válido , la ventana o el navegador se cierra y se guarda , por lo que se utiliza como datos persistentes ;       la cookie  solo es válida hasta el tiempo de caducidad de la cookie establecido , incluso si la ventana o el navegador están cerrados . (clave :  en sí mismo es un proceso de sesión , desaparece después de cerrar el navegador ,  la sesión  es una sesión , cuando la página es diferente, incluso si la misma página se abre dos veces , se considera como la misma sesión )

localStorage : localStorage se comparte entre todas las ventanas del mismo origen ;  la cookie también se comparte entre todas las ventanas del mismo origen . (clave : las ventanas del mismo origen se compartirán y  no se invalidarán , y siempre tendrán efecto independientemente de si la ventana o el navegador están cerrados )                                                      Permítanme agregar  la función de las cookies  :                                                  para guardar el estado de inicio de sesión del usuario . Por ejemplo, almacene la identificación del usuario en una cookie , de modo que cuando el usuario visite la página la próxima vez, no necesite iniciar sesión nuevamente . Muchos foros y comunidades ahora brindan tales funciones . La cookie también puede establecer un tiempo de caducidad , y cuando expire el límite de tiempo , la cookie desaparecerá automáticamente . Por lo tanto , el sistema a menudo puede solicitar con    

Cuánto tiempo permanece conectado el usuario : Las opciones comunes son un mes , tres meses  , un año , etc.

Seguimiento del comportamiento del usuario . Por ejemplo, un sitio web de pronóstico del tiempo puede mostrar las condiciones meteorológicas locales según la región seleccionada por el usuario . Si es engorroso elegir la ubicación cada vez , será muy humanizado cuando se usen cookies .  El sistema puede recordar la región visitada la última vez . Cuando se abra la página la próxima vez , mostrará automáticamente al último usuario Las condiciones climáticas en tu área Debido a que todo se hace en segundo plano , una página de este tipo es como si estuviera personalizada para un determinado usuario , y es muy conveniente usar la página personalizada . Si el sitio web proporciona la función de cambiar la máscara o cambiar el diseño , las cookies  se pueden utilizar para registrar las opciones del usuario  , tales como : color de fondo , resolución, etc. Cuando el usuario visite la próxima vez , aún se puede guardar el estilo de interfaz de la visita anterior . 

Supongo que te gusta

Origin blog.csdn.net/Ct130429/article/details/126127660
Recomendado
Clasificación