Entrada de front-end web al combate real: 32 preguntas comunes de la entrevista de js

Preguntas de la entrevista JS:

[Haga clic aquí para recibir información sobre las preguntas de la entrevista]

1. ¿Qué tipos de datos devuelve el tipo de javascript?

string, boolean, number, undefined, function,object

2. mencionado tres tipos de moldes y dos tipos de conversión implícita?
Obligatoria ( parseInt, parseFloat, number) implícita ( == === + -)

3. La diferencia entre split () y join ()
split() es cortar la cadena en una matriz, que join()es convertir la matriz en una cadena.

4. Métodos de matriz pop (), push (), unshift (), shift ()

  • push()Agregar al final
  • pop()Eliminar cola
  • unshift()Head agregar
  • shift()Eliminación de encabezado

5. ¿Cuáles son los métodos de escritura compatibles con IE y los estándares?

var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target

6. La diferencia entre obtener y publicar cuando ajax solicita

  • getEstá de urlvuelta posten el portador virtual en el interior.
  • get Hay un límite de tamaño (solo se pueden enviar algunos parámetros)
  • postQue la getseguridad
  • Diferentes aplicaciones, solicitar datos y enviar datos

7.call 和 apply 的 区别
Object.call (this, obj1, obj2, obj3) Object.apply (this, argumentos)

applyY la callúnica diferencia es que diferentes parámetros del segundo modo de transferencia, applyun segundo parámetro debe ser una matriz, y se callle debe permitir pasar una lista de parámetros.

8. Cómo analizar datos json cuando se
usa una solicitud ajaxJSON.parse

9. ¿Qué es la delegación de eventos?
Utilice el principio de propagación de eventos para permitir que sus propios eventos desencadenados sean ejecutados por sus elementos padres.

10. Qué es un cierre, cuáles son sus características y qué impacto tiene en la página. Un
cierre es una función que puede leer las variables internas de otras funciones, de modo que la función no sea reciclada por el mecanismo de GC. Si el el cierre se usa demasiado, es fácil causar pérdidas de memoria.

¿Por qué cierras el portal?

11. Cómo evitar que el evento se propague

  • es decir: dejar de burbujear ev.cancelBubble = true;
  • No IE ev.stopPropagation();

12. Cómo bloquear eventos predeterminados

  • 1.return false
  • 2 ev.preventDefault().;

13. Agregar, eliminar, reemplazar e insertar en un método de contacto
1. Crear un nuevo nodo

// 创建一个具体的元素
createElement();
// 创建一个文本节点
createTextNode();

2. Agregar, quitar, reemplazar, insertar

appendChild();  //添加
removeChild();  //移除
replaceChild(); //替换
insertBefore(); //插入

3. Encuentra

//通过标签名称
getElementsByTagName();
//通过元素的Name属性的值
getElementsByName();
//通过元素Id,唯一性
getElementById();    

14. Explica el principio de jsonp y por qué no es un ajax real
crear scriptetiquetas y funciones de devolución de llamada de forma dinámica.

Ajax¿La página no tiene una operación de solicitud de actualización de datos?

15. La diferencia entre la carga del documento y el documento listo es
document.onload que jsse ejecuta solo después de que se cargan la estructura y el estilo, el exterior y la imagen.js

document.readySe domha creado un árbol sobre la implementación del método, este método no es nativo, jqueryhay$().ready(function)

dieciséis.""con"= "La diferencia
== convertirá automáticamente el tipo y luego juzgará si es igual,
===no convertirá automáticamente el tipo, simplemente vaya a la comparación

17. ¿Cuál es la diferencia entre declaración de función y expresión de función?
En Javscript, el analizador no trata las declaraciones de función y las expresiones de función por igual cuando carga datos en el entorno de ejecución. El analizador leerá la declaración de función primero y la hará disponible (accesible) antes de ejecutar cualquier código. En cuanto a las expresiones de función, deben esperar hasta que el analizador se ejecuta en la línea de código donde se encuentra antes de que realmente se analicen y ejecuten.

18. Para comprender el contexto del alcance y esto, consulte el siguiente código:

var User = {
    
    
 count: 1,
 getCount: function() {
    
    
  return this.count;
 }
};
console.log(User.getCount()); // 1
var func = User.getCount;
console.log(func()); // 是1和undefined

`func`是在`window`的上下文中被执行的,所以不会访问到`count`属性。

19. Mire el código de abajo y dé el resultado de salida.

for(var i = 1; i <= 3; i++){
    
      //建议使用let 可正常输出i的值
  setTimeout(function(){
    
    
    console.log(i);   
  },0); 
};
4 4 4// 原因:Javascript事件处理器在线程空闲之前不会运行。

20. Cuando se hace clic en un nodo DOM, queremos poder ejecutar una función, ¿qué debemos hacer?

box.onlick= function(){
    
    }
box.addEventListener("click",function(){
    
    },false);
<button οnclick="box()"></button>

21. ¿Cuál es el modelo de flujo de eventos de Javascript? El
“事件冒泡”: evento comienza a ser recibido por el elemento más específico, y luego el
“事件捕捉”:evento se propaga hacia arriba de nivel por nivel. El evento es recibido por el nodo menos específico primero y luego desciende de nivel por nivel a las
“DOM事件流”:tres etapas más específicas : captura de eventos, etapa de destino, propagación de eventos

22. Mira el siguiente código, ¿cuál es el resultado? Explica el motivo.

var a = null;
alert(typeof a);
// object

Explicación: Este JavaScriptha sido el caso desde sus inicios, nulles un tipo de datos con un solo valor, y este valor es null. Representa un objeto puntero nulo, por lo que la typeofprueba volverá ”object”.

23. Determine la cadena para comenzar con una letra, seguida de números, guiones bajos, letras y la longitud es de 6 a 30

var reg=/^[a-zA-Z]\w{5,29}$/;

24. Responda el siguiente código, ¿cuál es el valor de alerta?

    var a = 100;  
    function test() {
    
      
        alert(a);  
        a = 10;  //去掉了var 就变成定义了全局变量了
        alert(a);  
    }  
    test();
    alert(a);
// 正确答案是:100, 10, 10

25. ¿Cuál es la diferencia entre los dos rangos de variables de javaScript?

  • Variables globales: válidas en la página actual
  • Variables locales: válidas dentro del método de función

26. ¿La diferencia entre nulo e indefinido?
nullEs un objeto que representa "ninguno", que se convierte en un valor numérico 0, undefinedes un valor original que representa "ninguno", que se convierte en un valor numérico NaN. Cuando la variable declarada no se ha inicializado, el valor predeterminado de la variable undefined. nullSe usa para indicar objetos que aún no existen.

undefinedIndica "valor perdido", es decir, debería haber un valor aquí, pero aún no está definido. El uso típico es:

1. Cuando la variable se declara, pero no se asigna, es igual a undefined.
2. Al llamar a la función, no se proporciona el parámetro que se debe proporcionar y el parámetro es igual a undefined.
3. El objeto no tiene ningún atributo asignado y el valor del atributo es undefined.
4. Cuando la función no devuelve un valor, lo hace de forma predeterminada undefined.

nullSignifica "sin objeto", es decir, no debería haber ningún valor allí. El uso típico es:
1. Como parámetro de una función, significa que el parámetro de la función no es un objeto.
2. Como final de la cadena de prototipos de objetos.

27. ¿Qué hace exactamente el nuevo operador?
1. Crea un objeto vacío, y esta variable se refiere al objeto, y al mismo tiempo hereda el prototipo de la función.
2. Las propiedades y los métodos se agregan al objeto al que hace referencia este.
3. Esto hace referencia al objeto recién creado y, finalmente, lo devuelve implícitamente.

¿Cuáles son las formas de retrasar la carga en 28.js?

  • deferconasync
  • Creado dinámicamente DOM(modo de creación script, insertado en DOMel medio, cargado callBack)
  • Cargar js de forma asincrónica bajo demanda

29. ¿Cómo elegir entre las ventajas y desventajas de Flash y Ajax en uso?

Comparación de flash ajax

1. Es Flashadecuado para procesar multimedia, gráficos vectoriales y acceder a máquinas, CSSno es fácil de buscar debido a un procesamiento de texto insuficiente.
2. ajaxCSS, el soporte de texto es muy bueno, la búsqueda de soporte, multimedia, gráficos vectoriales, el acceso a la máquina es insuficiente.
Puntos comunes: entrega de mensajes sin actualización con el servidor, estado del usuario fuera de línea y en línea, funcionamiento del DOM

30. No use bucles, cree una matriz de longitud 100 y el valor de cada elemento es igual a su subíndice.

new Array(100).fill(0).map((_, c) => c)

31 ¿Cómo quiero obtener todas las casillas de verificación en la página? (No utiliza marcos de terceros)

var inputs = document.getElementsByTagName("input"); // 获取所有的input标签对象
var checkboxArray = []; // 初始化空数组,用来存放checkbox对象。
for(var i=0;i<inputs.length;i++){
    
    
  var obj = inputs[i];
  if(obj.type=='checkbox'){
    
    
     checkboxArray.push(obj);
  }
}

32. Escribe una función para borrar los espacios antes y después de la cadena. (Compatible con todos los navegadores)

String.prototype.trim= function(){
    
    
    return this.replace(/^\s+/,"").replace(/\s+$/,"");
}

Supongo que te gusta

Origin blog.csdn.net/weixin_56134381/article/details/115330236
Recomendado
Clasificación