2020 front-end preguntas cara JavaScript / acabado preguntas incorrectas

1. Introducción de tipos de datos básicos de JavaScript

Number, String, Boolean, Null, objeto no definido es JavaScript padre se opone todos los objetos del
objeto de clase encapsulador de datos: objeto, matriz booleana, Number y String
otros objetos: Función, los argumentos, las matemáticas, la fecha , RegExp, Error de
nuevo tipo: Símbolo

2.eval está haciendo qué?

Su función es la de analizar la cadena correspondiente al código y ejecutar JS; deben evitar la eval, insegura gran rendimiento, (2 veces, una vez resuelto en declaraciones js, tiempo de ejecución).
cadena JSON en un objeto JSON se puede utilizar cuando eval, var obj = eval ( ' (' + str + ')');

3.Javascript, hay una función, cuando el objetivo es encontrar el tiempo para realizar, para no encontrar el prototipo, esta función es?

hasOwnProperty
Javascript en función hasOwnProperty es devolver un valor booleano que indica si un objeto tiene el nombre especificado propiedad. Este método no comprueba la cadena de prototipo del objeto tiene una propiedad; la propiedad debe ser un miembro del objeto en sí.
Uso: Object.hasOwnProperty (Proname) donde el objeto parámetro es obligatorio. Ejemplos de un objeto.
Proname se requiere. Un valor de cadena del nombre del atributo. Si el objeto
que tiene el nombre de atributo especificado, entonces la función devuelve verdadero JavaScript en el método hasOwnProperty, de lo contrario retorna falso.

4.js opciones de carga diferida?

Defer y asíncrono, el modo de DOM creado dinámicamente (más usado), On-Demand js carga asíncrona

5. La forma de determinar la secuencia de comandos actual que se ejecuta en el entorno de navegador o nodo?

? Esta ventana === 'navegador': 'nodo';
por Global determinar si el objeto es una ventana, si no una ventana, el guión actual no se ejecuta en el navegador

6. incluyen tres tipos de moldes y dos tipos de conversión implícita?

Forzoso (parseInt (), parseFloat () , Número ())
implícito (== ,! =)

7.split diferencia (), join () de

El primero se corta en forma de una matriz, que es la matriz en una cadena

8. Método de matriz pop () push () unshift () shift () mapa filter () ()

push () de la cola add pop () de la cola eliminación
unshift () para añadir el cambio de la cabeza () de borrado cabeza
del mapa (): atravesar los elementos de la matriz y devuelve una nueva matriz (que contiene devuelve la función de devolución de llamada de datos)
filtro (): Iterar los elementos y devuelve una nueva matriz (que comprende una función de devolución de llamada devuelve verdadero elemento)

9. ¿Cómo detener el evento de los eventos burbujeantes y el comportamiento por defecto

//阻止事件冒泡

if(typeof ev.stopPropagation=='function') {  //标准的

    ev.stopPropagation();

} else { //非标准IE

    window.event.cancelBubble = true;

}

//阻止事件默认行为
return false
window.onload 和document ready的区别
window.onload 是在dom文档树加载完和所有文件加载完之后执行一个函数 document.ready原生中
没有这个方法,jquery中有 $().ready(function),在dom文档树加 载完之后执行一个函数
(注意,这里面的文档树加载完不代表全部文件加载完)。
$(document).ready要比window.onload先执行
window.onload只能出来一次,$(document).ready可以出现多次

10. "==" y "===" diferente

El primero se convierten automáticamente al tipo de
la última voluntad no

11. Cuando se hace clic en un nodo DOM, queremos ser capaces de realizar una función, ¿cómo debemos hacer?

Dirigir eventos de unión en el DOM: <div οnclick=”test()”></div>
mediante la unión en el JS onclick: xxx.onclick = test
añadiendo suceso de unión:addEventListener(xxx, ‘click’, test)

¿Cuáles son el modelo de flujo de eventos 12.Javascript?

"Evento de propagación": Evento comenzó a aceptar los elementos más específicos, y luego se extendió progresivamente hacia arriba
"captura de eventos": un evento es recibido por el nodo menos específica primero, a continuación progresivamente hacia abajo hasta el más específico
"flujo del evento DOM ": tres etapas: la captura de eventos, escenario objetivo, evento de propagación

13. La interceptación de la cadena abcdefg efg

alert('abcdefg'.substring(4));

14. La inversión de la cadena, como será '12345678' a '87654321'

//思路:先将字符串转换为数组 split(),
利用数组的反序函数 reverse()颠倒数组,再利用 jion() 转换为字符串

var str = '12345678';
str = str.split('').reverse().join('');

15. ¿Qué acción provocará una pérdida de memoria?

Un medio de pérdida de memoria que un objeto ya no tiene ninguna necesidad o temprano todavía está allí en su.

colector de basura explora periódicamente el objeto, y calcula el número de referencias a otros objetos de cada objeto.
Si un número de referencia de objeto es 0 (ninguna otra referencia de objeto a través del objeto), o la única referencia al objeto es circular, entonces la memoria del objeto se puede recuperar.

  1. El primer parámetro de setTimeout uso de cadenas en lugar de una función, que dará lugar a pérdidas de memoria.
  2. cierres
  3. registro de la consola
  4. Ciclo (cuando los dos objetos entre sí y entre sí para mantener una referencia, producirá un ciclo)

operador 16.typeof devuelve el valor en un tipo de datos es incompatible con javascript, es? Cómo determinar la matriz no es así?

Array,Array.isArray(data)

17.window.location.search () devuelve qué?

http://localhost:8080/xxx?ver=1.0&id=123

Valor de retorno :? ver = 1.0 & id = timlq es parte después del signo de interrogación

18.window.location.reload () la acción?

Actualizar la página actual.

mecanismo de recolección de basura en 19.javascript?

En Javascript, si un objeto ya no se hace referencia, el objeto se recuperó GC. Si dos objetos se refieren el uno al otro, y ya no
ser referenciados por un tercero, a continuación hacen referencia a los dos objetos entre sí, se recuperará. Debido a que una función se hace referencia b, b ha sido citado fuera de una C, que es la razón por la función no puede ser ejecutada después de una recuperación.

20. Descripción de la diferencia entre los discapacitados y de sólo lectura

Y el papel de movilidad reducida de sólo lectura es permitir a los usuarios a cambiar el contenido sin campos de formulario, pero ambos todavía hay algunas diferencias :.
1, Sólo lectura sólo para la entrada (texto / contraseña) y área de texto eficaces, pero desactivada para todas las formas de
los elementos válidos, incluyendo selección, radio, casillas de verificación, botón y así sucesivamente.
2, en los elementos de formulario que utilizan las personas con discapacidad, vamos a formar con el POST o GET presentación, entonces este
no serán transmitidos a cabo elementos de valor, y el valor pasará a cabo de sólo lectura

21. implementa mediante orden ascendente JavaScript. Los datos para el 23,45,18,37,92,13,24

// algoritmo ascendente

function sort(arr){

    for (var i = 0; i <arr.length; i++) {

        for (var j = 0; j <arr.length-i; j++) {

            if(arr[j]>arr[j+1]){

                var c=arr[j];//交换两个变量的位置

                arr[j]=arr[j+1];

                arr[j+1]=c;

            }

        };

    };

    return arr.toString();

}

console.log(sort([23,45,18,37,92,13,24]));

22. Informe a tres maneras de reducir el tiempo de carga de la página

1, css compresión, js

2. js, css consolidados, reduciendo las peticiones HTTP

3, js, css externos en la parte inferior

4, operación de reducción dom, como con las operaciones de sustitución de variables de DOM innecesario

23. La elevación variable de

function sayHi(){
		console.log(name);
		console.log(age);
		var name = "Tom";
		let age = 18;
	}

	sayHi();
  • A: Tom 和 indefinido
  • B: Tom 和 ReferenceError
  • C: ReferenceError 和 18
  • D: indefinido和ReferenceError

En la función, el primero en utilizar la palabra clave var para declarar un nombre de variable. Esto significa que la variable se promoverá en la etapa de creación (JavaScript crea un escenario para su espacio de memoria asignado crear una variable), el valor predeterminado es indefinido, hasta que realmente ejecutan a la línea de utilizar la variable.
No tenemos por nombrar asignación de variables, por lo que queda de valor indefinido.
el uso variable de la variable Let palabra (y const) declaró que no aumentará, pero con diferente inicialización var no se ha promovido. Antes declaramos (inicialización), ellos no son accesibles. Esto se conoce como "zona muerta temporal". Cuando intentamos acceder a la variable antes de declarar una variable, JavaScript arrojará un ReferenceError.

función 24.setTimeout

for (var i = 0; i < 3; i++) {
	  setTimeout(() => console.log(i), 1);
	}

	for (let i = 0; i < 3; i++) {
	  setTimeout(() => console.log(i), 1);
	}
  • A: 0 1 2 0 1 2 y
  • B: 0 1 2 3 3 3 y
  • C: 3 3 3 0 1 2 y
  • Respuesta: C

Debido al mecanismo de ejecución asíncrono en JavaScript, cuando en realidad la función setTimeout sido ejecutado, el ciclo se ha completado.
Desde la primera variable de bucle i se declara utilizando la palabra clave var, por lo que el valor es global. Durante el ciclo, cada vez que utilice el unario + 1 se incrementará el valor de i.
Por lo tanto, en el primer ejemplo, cuando se llama a la función setTimeout, se me ha asignado a 3.
En el segundo ciclo, la palabra clave let utiliza para las variables declaro: que las variables (y const) de palabras clave se declara (bloque de cualquier cosa entre {a}) que tiene un ámbito de bloque. Durante cada iteración, I se creará como un nuevo valor, y cada valor está presente en el ámbito de nivel de bloque dentro del bucle.

25. La definición de matriz (título equivocado)

var a = [] matriz para crear una longitud de 0, a [5] = 4, la longitud de la matriz se extiende automáticamente a 6, están indefinidos no hay elementos de asignación.

26. Las variables internas con el mismo nombre que una variable global cuando (el título equivocado)

La cubierta variable interna variable externa

27. El método de la declaración sobre el bloque de función (pregunta equivocada)

if(x){var foo =function(){}}

Tienes var

28. Para la transmisión de un mensaje a la sub-ámbito

$emit() 向上冒泡
$broadcast() 是向下传播事件

29. ¿Cómo se previene el comportamiento por defecto del navegador

Dos maneras:

window.event.returnValue=false;
event.preventDefault();

30. aritmética

JavaScript define var a = "40", var b = 7, se realiza a% b será (5).

Haremos durante una operación aritmética, el signo +, digital implícitamente convierte en una cadena. La cadena de símbolo de la operación restante se convierte en una forma implícita digitales.

31.w3c desarrollar Javascript modelo de eventos estándar (título equivocado)

captura de eventos -> Procesamiento de Eventos -> burbujeo de eventos

Para la resolución 32.JavaScript

Después de seguir la ejecución de código, los valores son num?

var foo=function(x,y){
return x-y;
}
function foo(x,y){
return x+y;
}
var num=foo(1,2);
答案:-1

33. ¿Cuál de los siguientes no es un tipo de datos de JavaScript:

Entero

Int Entero es una clase contenedora. Javascript es un lenguaje de tipos débiles, no es necesario especificar una definición de tipo de datos en particular de variables. los datos están en letra Javascript Indefinido, Null, Boolean, Number. pertenecer a estos tipos básicos. Objeto,
Array,
función pertenece al tipo de referencia. Algún tipo cadena especial, que tiene un tamaño variable porque la cadena, es evidente que no se puede almacenar directamente en la variable con un tamaño fijo. Por razones de eficiencia, sólo queremos copiar JS referencia a la cadena, más que el contenido de la cadena. Por otro lado, los tipos básicos y las cadenas son similares en muchos aspectos, el rendimiento de, y el hecho de que la cadena es inmutable (es decir, no cambia el contenido de un valor de cadena), el comportamiento puede ser visto con la cadena tipo sustancialmente similar tipo de referencia inmutable

34. descrito en JavaScript, atributo de objeto llamada, por ejemplo: Llamada de atributo de objeto obj arr

obj["arr"]
obj["a"+"r"+"r"]
obj.arr

En el modo de punto o entre paréntesis

35. Cómo determinar si el objeto es una matriz js, arr como un objeto para determinar qué método es el más preciso?

Aquí Insertar imagen Descripción

typeof(arr) 返回的是 Object
instanceof 在跨 frame 对象构建的场景下会失效
arr.toString 没有这种用法,正确的用法是 arr.toString() 返回的是数组的内容

Desde la cadena 36. const cadena = 'qwbewrbbeqqbbbweebbbbqee'; los resultados se pueden obtener en el [ "b", "BB", "bbb", "BBBB"] La siguiente declaración es incorrecta?

Moderación: Error
Aquí Insertar imagen Descripción

+ Significa al menos un b
* b representa puede no ocurrir, también puede ocurrir una o más veces
{n, m} representa el mínimo se produce n veces b, aparece en la mayoría de m veces b

/b+/g    //匹配前面的子表达式一次或多次,有一个或多个b
 /b*/g    //匹配前面的子表达式零次或多次,结果不止数组中那么多
 /b{1,4}/g   //匹配1-4个b 
 /b{1,5}/g    //匹配1-5个b

37. ¿Cuál de los siguientes no es la manera de cambiar la cadena de ámbito?

Aquí Insertar imagen Descripción

con try-catch cadena de ámbito eval puede variar

Publicados 158 artículos originales · ganado elogios 44 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_43277404/article/details/104613354
Recomendado
Clasificación