"Preguntas," Resumen 54 Conceptos básicos de JavaScript

1. ¿Cómo entender esto?

esto representa el objeto actual, este punto se basa en el contexto de llamada a la decisión, señalando al objeto de ventana por defecto.

  • función de llamada directa en el ámbito medio ambiente global, esta ventana de su valor.
  • En la llamada a la función objetivo, que llama a los puntos del objeto al cual objeto.
  • Ejemplos del uso de nuevos objetos, en este punto constructor una instancia del objeto.
  • Uso unen, aplicar, llamada puede cambiar este punto. recibir un parámetro de enlace, este parámetro se utiliza para establecer este punto, pero la función no se ejecutará inmediatamente. Además de cambiar aplicar y llamar a este punto, la fila de atrás puede ser recibida como una función de un parámetro de referencia, y la función se ejecutará inmediatamente. Aplicar y la diferencia de llamada se utiliza para definir una primera aplican este punto, la recepción de un segundo parámetro como una función de la matriz de la línea de referencia, y llamar a este parámetro define un primer punto, todos los parámetros son una función de la línea de referencia hacia atrás.
  • En esta función, la flecha que apunta la flecha función no posee este, este es su heredada, que apunta al objeto se encuentra por defecto cuando se define (objeto host) y el objeto es que no se ejecute. Definición de la misma, si es posible ventana del entorno, la flecha nos permite fácilmente en función setTimeout, setInterval utilizar esto. función, este punto inmovilización, no a causa de las flechas internos coreanos tienen este mecanismo vinculante, la función de flecha no posee este razones prácticas, esto lleva al interior de este bloque de código exterior flecha.

2. El modo estricto y el modo no estricto este punto?

  • El modo no estricta ya que la ejecución de la función de esta ventana siempre (señalando el modo estricto no está definido)
  • Método para la realización de modo no estricta esta ventana punto (punto de undefind modo estricto)
  • No estricto modo se unen, llamada, se aplica el primer argumento pasado nula, undifined también apuntan a la ventana (estricta que apunta a modo de lo que es)

3. ¿Cuál es el modo estricto?

el modo estricto ES5 es una manera de limitar el uso de la variante de Javascript, por lo que el código explícitamente del "modo descuidado, modo perezoso, el modo descuidado"

el modo estricto Javascript para semántica normal de hecho algunos cambios.

  • El modo estricto por errores de lanzamiento para eliminar algunos de los errores en silencio originales.
  • correcciones de modo estricto algunos defectos conducen a una difícil de ejecutar la optimización del motor de Javascript, el modo estricto a veces para llevar a cabo más rápido que el modo de código no estricto.
  • El modo estricto se desactiva en las versiones futuras de ECMAScript gramática pueden ser definidos.

Invocar el modo estricto:

El modo estricto se puede aplicar a toda la secuencia de comandos o funciones individuales. No puede hacerlo en {}, que llega a ser válida en tales contextos.

El modo estricto se enciende por todo el guión, tenemos que poner una declaración específica antes de que todos los estados "uso estricto"

// 脚本中的严格模式
"use strict";
var a = 'this is a strict mode script';

Para dar una función de modo estricto está activado, tiene que "use strict"; (o 'use strict';) antes de que el cuerpo de la función declarada la palabra no se escapa todas las declaraciones colocados.

// 函数中的严格模式
function strict(){
  "use strict";
  console.log("this is a strict mode script")
}

4.JavaScript en su alcance (scope) ¿Qué significa?

En JavaScript, cada función tiene su propio ámbito. Sólo declarado dentro del ámbito de la función dentro de una función a las variables de acceso, si una variable no se declara dentro de la función producirá una implícita variables globales. Con un nombre de variable con ámbito debe ser único, un ámbito de aplicación se puede anidar en otro ámbito, si no se encuentran las variables de ámbito actuales, se ve a la capa externa, si tampoco se encuentra en la capa más externa se oculta escriba crear una variable global.

5. ¿Qué es un cierre?

En JavaScript, sólo la subrutina función interna para leer una variable local , por lo que el cierre puede ser entendido como "en la definición de una función es una función interna". En esencia, la función de puente interno de cierre y la función de conectar externa.

6. ¿Cómo entender el delegado de eventos?

Usar la propagación de eventos mecanismo de gestión de especificar un controlador de eventos para gestionar todos los eventos de un tipo determinado.

Una página li se hace clic, el equivalente de su elemento padre ul, ul cuerpo del elemento padre, han hecho click en el cuerpo del elemento padre.
Siendo ese el caso, en lugar de unirse a los 100 li 100 eventos, puede ser que también dan una ul unen un evento para conseguir un elemento específico se ha hecho clic por event.target.
Este es el delegado de eventos.

7. Explicar nula y sin definir en JavaScript

nombre null, representantes indefinidos no se ha inicializado.

Los valores y tipos 8.JavaScript

Tipo de valor:

  • número
  • cuerda
  • booleano
  • nulo
  • indefinido
  • símbolo

Tipos de referencia:

  • formación
  • objeto
  • functon

9. Explica cómo detener y burbujeante evento

burbujeo de eventos es gatillo anidada un evento en los elementos profundos, entonces este acontecimiento seguirá el gatillo de la secuencia anidada junto con el elemento padre. Los métodos para prevenir evento de propagación es: Event.cancel.Bubble o Event.stopPropagation

10. efecto window.onload de

window.onload es otros documentos y recursos se cargan después de las llamadas de eventos, js obtienen los elementos, ya está cargada.

11. Hable acerca de su comprensión de la cadena de ámbito

La cadena de alcance es una búsqueda js mecanismo en el aspecto del ámbito de aplicación actual, el alcance actual no es hasta encontrar un alcance hasta que la capa más externa, si no se puede encontrar que no se definen.

12. El algoritmo de ordenación burbuja?

var nums = [223, 432432, 324, 34, 2, 3, 2432, 4, 23424, -3, 43, 3]

for(var i = 0, l = nums.length; i < l; i++){
    for(var k = 0, g = nums.length; k < g; k++){
        if(nums[k] > nums[k+1]){
            var temp = nums[k]
            nums[k] = nums[k +1]
            nums[k+1] = temp
        }
    }
}

13.DOM cómo añadir, eliminar, mover, copiar, crear y encontrar los nodos?

  • Obtener nodos hijos de todos los elementos (.children padre)
<ol>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
</ol>
console.log(document.querySelector('ol').children)
  • Obtener el nodo padre (nodo hijo .parentNode)
        <div>
            <span></span>
        </div>
        console.log(document.querySelector('span').parentNode)
  • Crear un document.createElement nodo ( 'nombre de etiqueta')
document.createElement('div)
document.TextNode('文本内容')
  • Adición de un nodo (nodo padre .appendChild (nodo hijo))
var div = document.createElement('div')
box.appendChild(div)
  • Copiar (nodo copiado .cloneNode (verdadero))
div.cloneNode(true)
  • Eliminar (.Remove nodo (), padre .removeChild (nodo hijo))
div.remove()
parentNode.removeChild(div)
  • reemplazar
父节点.replaceChild(newChild, refChild)
  • buscar
document.querySelector('#root')
document.querySelectorAll('li')

14. ¿Cuál es el objeto de la ventana, lo que es el objeto del documento

js ventana de objeto es el objeto más grande que representa una ventana que contiene el objeto de documento.

documento es un objeto de documento ,, representa html

15.offsetWidth diferencia, clientWidth, scrollTop de

  • offsetWidth: Contabilidad bits de ancho, contiene contenido sobre + ancho + acolchado borde izquierdo
  • clientWidth: anchura Visual, relleno alrededor de + que comprende contenido
  • scrollTop: Volumen de páginas a ser alto

16. Cómo obtener la dirección URL para buscar contenido?

window.location.search

pros y los contras 17.cookie

ventajas:

  1. A través de una buena programación, controlar el tamaño de la sesión de objetos almacenados en la cookie.
  2. A través de la encriptación y la tecnología de transmisión segura (SSL), para reducir la posibilidad de cookie para la grieta
  3. No sólo para almacenar datos sensibles en una cookie, incluso en caso de robo no tendrá pérdidas significativas.
  4. Cookie puede controlar el ciclo de vida, por lo que no devuelve un válido para siempre, los ladrones es probable que obtenga una cookie de expirado

desventajas:

  1. limitar el número y longitud de la galleta, cada dominio sólo puede tener un máximo de 20 galleta, cada galleta no puede exceder de 4K, de lo contrario será truncado.
  2. Las cuestiones de seguridad, si la cookie fue interceptado gente, toda la información de la sesión que la gente puede ir, cifrado técnicos no tiene nada que ver con el asunto, debido a que el interceptor no necesita saber el significado de la cookie, siempre y cuando se envían cookies que puede lograr sus objetivos .
  3. Algunos no se pueden almacenar en el estado del cliente, por ejemplo, con el fin de prevenir formulario de envío duplicado, necesitamos ahorrar un contador en el lado del servidor, si ponemos este contador se almacena en el cliente, entonces se produce ningún efecto. cookie necesita especificar el alcance, no se puede utilizar a través de dominios.

18 para hablar sobre el proceso de creación de Ajax

            // 1.创建对象
            const ajax = new XMLHttpRequest()
            // 2.建立链接
            ajax.open('GET', 'http://status.164.red/200', true)
            // 3.发送请求
            ajax.send()
            // ajax.send(json.data) // post请求时
            // 4.监听结果
            ajax.onreadystatechange = function(){
                if(ajax.readyState === 4 || ajax.readyState === 200){
                    console.log(ajax.response)
                }
            }

códigos de estado HTTP 19. Comunes ¿Qué?

  • 200: indica que la solicitud ha sido exitosa, la petición o respuesta de cabeza deseada volumen de datos variará con los retornos de respuesta.
  • 201: indica que la solicitud se ha realizado correctamente y el servidor crea un nuevo recurso, y que URI ha vuelto con información de la cabecera Ubicación. Si no se puede establecer técnico de los recursos necesarios, debe devolver 202 Aceptado.
  • 301: El recurso solicitado se ha trasladado de manera permanente a una nueva ubicación. Cuando el servidor devuelve el tiempo de respuesta (respuesta a una petición GET o HEAD), que reenvía automáticamente al solicitante a la nueva ubicación.
  • 302: La respuesta de petición de recursos temporal para una solicitud de un URI diferente, pero el solicitante debe seguir utilizando la ubicación original para futuras peticiones.
  • 304: desde la última solicitud, la página solicitada no se ha modificado. Cuando el servidor devuelve esta respuesta, no vuelve de nuevo a la página de contenidos, si la página desde la última solicitud después de que la solicitud no ha cambiado. Debe configurar el servidor para devolver esta respuesta (denominado If-Modified-Since encabezado HTTP).
  • 401: La solicitud pidió para verificar la identidad, la necesidad de que la página de destino, el servidor puede devolver esta respuesta.
  • 403: El servidor ha entendido la solicitud, pero se negó a ponerlo en práctica. La diferencia es que con la respuesta 401, la autenticación no ayuda a ninguno, pero esta solicitud no debe ser repetida presentado.
  • 404: Error de la solicitud para obtener la solicitud de recurso deseado no se encuentra en el servidor. La información no puede decir en el usuario final de este estado es temporal o permanente. Si el servidor conoce el caso, el código de estado 410 se debe utilizar para contar el mecanismo de asignación de recursos de edad a causa de algunos problemas internos, ha sido permanentemente disponible, y no hay direcciones puede saltar. Este código de estado 404 se utiliza ampliamente en el servidor final no se da a conocer por qué se rechaza la solicitud o no hay respuesta en el caso de otra disposición adecuada.
  • 500: El servidor encontró una situación inesperada dado lugar a que no se puede completar el procesamiento de la solicitud, en general, el problema aparecerá en el código del programa es servidor incorrecto.
  • 503: debido a una sobrecarga temporal o mantenimiento del servidor, el servicio es actualmente incapaz de manejar la petición. Por lo general, se trata de un estado temporal, un período de tiempo para recuperarse.

20.js qué acciones va a causar una pérdida de memoria

  • pérdida de memoria accidente de fuga de la función debido a una variable global () {fuga = 'xxx'} // fuga conoce como una variable global, no va a recuperar.
  • Olvidado temporizador o retroceder.
  • pérdida de memoria cierre de British Gas.

21. Determinar qué tipo un valor de qué manera?

  • operador typeof (no determinado array objeto nulo)
  • en vez de
  • Object.prototype.toString.call (arr) (determina si el array)
  • Array.prototype.toString.call (arr)
console.log(Object.prototype.toString.call(123));    //[object Number]
console.log(Object.prototype.toString.call('123'));    //[object String]
console.log(Object.prototype.toString.call(undefined));    //[object Undefined]
console.log(Object.prototype.toString.call(true));    //[object Boolean]
console.log(Object.prototype.toString.call({}));    //[object Object]
console.log(Object.prototype.toString.call([]));    //[object Array]
console.log(Object.prototype.toString.call(function(){}));    //[object Function]
console.log(Object.prototype.toString.call(null));    //[[object Null]]

22. La forma de determinar si una variable es una matriz?

  • arr matriz instanceof
var arr = [1, 3, 5, 7, 10]
console.log( arr instanceof Array)
  • arr.constructor == matriz
  • Object.protype.toString.call (arr) == '[matriz de objetos]'

23. "===", "==" la diferencia?

  • == si y sólo si los dos operandos son iguales, devuelve verdadero, es decir, no comprueba el tipo de datos
  • ===, sólo que sin la necesidad de escribir operandos de conversión iguales, se devuelve verdadero, para comprobar el tipo de datos

24. "eval" ¿Qué hacer?

  • Su función es la de analizar la cadena en un código correspondiente y ejecutar JS;
  • Usted debe evitar el uso de eval, la inseguridad, el rendimiento enorme (2 veces, una vez analizados en la declaración js, una vez ejecutado).

25. ¿Cuáles son las características de flecha funcionan?

  • No es necesario crear una función de teclas de función
  • Unidireccional palabra clave return se puede omitir
  • Cambiar este punto

26.var, vamos, diferencia const?

  • existen las variables var para mejorar la
  • dejar que sólo en el ámbito de nivel de bloque
  • const se utiliza para definir las constantes, debe ser inicializado, no puede ser modificada (específico de destino)

Lo operador 27.new en el extremo hecho?

  • Crear un objeto vacío, y esta variable se refiere al objeto, también hereda el prototipo de la función.
  • Propiedades y métodos de esta aplicación se añadieron a la materia
  • El objeto recién creado hace referencia este, y finalmente volver a esta implícita

¿Cuál es la diferencia document.write 28. y innerHTML es?

  • document.write única redibujar toda la página
  • innerHTML puede volver a dibujar parte de la página

29. Sírvanse explicar la política de origen con arreglo al Javascript?

política de origen se refiere al puerto, los nombres de dominio, el mismo protocolo, la misma política de origen es un protocolo de seguridad.

30.JavaScript de recolección de basura de memoria

  • Lo que la memoria ya no se usa por el recolector de basura de vez en cuando para averiguar, y luego su memoria libre.
  • Generalmente se usa método de remoción marcador (Mark y barrido) de salida, en el medio ambiente cuando un signo de la variable en el medio ambiente, dejando el entorno ambiente marcado
  • El recolector de basura se añadirá al tiempo de ejecución para todas las variables se almacenan en las etiquetas de memoria, y luego eliminar las variables de entorno y variables (cierres) hace referencia la variable de entorno, persisten marcadas después de esto se hace es eliminar las variables la
  • Hay método de referencia del contador ( contaje de referencia ), a menudo a versiones más bajos de pérdida de memoria IE se produce, muchas veces, ya que utiliza colección de recuento de basura de referencia. estrategia contador de referencia es mantener un registro del número de veces que se utiliza cada valor cuando declara una variable y un tipo de tiempo asignado a la variable se referencia, el número de valor de referencia se incrementa en uno, si el valor de la variable en otro una frecuencia de referencia menos el valor 1, cuando el valor del número de referencia se convierte en 0, lo que indica que ninguna variable está en uso, este valor no se puede acceder, de manera que el espacio ocupado se puede recuperar. Por lo que el recolector de basura limpiar las citas para los valores 0 ocuparon el espacio en tiempo de ejecución.
  • Aunque JavaScript en IE objetos recuperados a modo de marcado de aclarado, pero la lista de materiales y el objeto DOM es basura contador, que es la medida de lo BOM y DOM serán un problema de referencias circulares por referencia.

31.Javascript prototipo, la cadena de prototipo Cuáles son las características?

  • Cada objeto en su inicialización interna de una propiedad, es decir, el prototipo (prototipo), cuando accede a las propiedades de un objeto, si el objeto interno no existe esta propiedad, entonces él iría al prototipo dónde encontrar esta propiedad, este prototipo se tiene su propio prototipo, por lo que se mira hacia abajo, este es el concepto de la cadena de prototipo.
  • JavaScript se pasa por referencia, nos dirigimos a la entidad de nueva creación y no posee una copia del prototipo, cuando modificamos el prototipo, heredará el objeto asociado a este cambio.

32. comprensión de MVVM

  • MVVM se divide en: Modelo, Vista, ViewModel tres.
  • Modelo representa la lógica de modelo de datos, de datos y de negocios están definidas en la capa del Modelo.
  • Ver nombre de vista de interfaz de usuario, el responsable de los datos muestran.
  • Modelo modelo de vista responsable del seguimiento de los cambios en los datos de actualización de datos y de control, la interacción del usuario mango.
  • Ver modelo y no están directamente relacionados, pero al contacto por modelo de vista, hay dos vías de enlace de datos del modelo y de modelo de vista vinculante. Por lo tanto, los cambios en los datos del modelo comenzará a refrescar Ver capa, ver el resultado de la interacción del usuario los datos modificados se sincronizarán en el modelo.
  • Este modo automáticamente para lograr la sincronización de datos del modelo y de Vista, por lo que los desarrolladores sólo necesitan centrarse en los datos pueden mantenerse sin la necesidad de su propia DOM operaciones.

33.var diferencia y dejar, const de

Su papel es el de declarar variables, y mucho ES6 y const es la norma.

Las diferencias son las siguientes:

  • dejar que las variables const y actualizar no existe.
  • Bajo el mismo alcance, no puede repetir la definición del mismo nombre.
  • Hay ámbito estricto. var pertenece ámbito de función, deja que pertenece al alcance a nivel de bloque.
  • const indicados son de sólo lectura, una vez establecidas las constantes no se pueden cambiar. (Arrays y objetos que pertenecen a un tipo de referencia complejas, se pueden cambiar).
  • const debe ser inicializado cuando se declaran, no sólo la afirmación de la asignación.

34. Establecer y Mapa

  • Establecer como una matriz, es el único miembro. Es una estructura de datos llamada colección.

    • La composición se establece, se contempla como una colección de elementos repetitivos no es ni A ni el orden de un concepto de matriz no ordenada y sólo (es decir, no duplicado) elementos.
    • Conjunto y mapa de la hipótesis principal es que de-duplicación y almacenamiento de datos de la matriz
    • ES6 proporciona Conjunto nueva estructura de datos, un constructor Conjunto sí se utiliza para generar el conjunto de estructura de datos.
    • Establecer las propiedades y métodos:
    var a = new Set()
    a.add('hello') // Set { 'hello' }
    
    // 去除重复
    var arr = [1,1,2,3,4,6,5,2,4,0,4,2]
    var arr2 = [... new Set(arr)] // [1, 2, 3, 4,6, 5, 0]
    • tamaño de los atributos: devuelve el número de elementos incluidos en la colección.
    • Agregar método (valor): añadir uno nuevo a la colección. añadir soporte método de encadenamiento, s.add (1) .add (2) .add (3).
    • eliminar (valor) Método: la eliminación de un valor de la colección.
    • tiene (valor) Método: Si el valor está presente en un conjunto, devuelve verdadero, el retorno falsa.
    • método clear (): eliminar todos los elementos de la colección.
    • teclas (): devuelve una matriz que comprende el conjunto de todas las claves.
    • valores (): devuelve una matriz que comprende el conjunto de todos los valores.
    • entradas (): Devuelve una matriz de todas las claves de la colección.
    • forEach (): utiliza para realizar una operación para atravesar el miembro de recogida, sin valor de retorno.
    // has方法的实现
    function Set() {
        let items = {};
        this.size = 0;
    
        // has(val)方法
        this.has = function(val) {
            // 对象都有hasOwnProperty方法,判断是否拥有特定属性
            return items.hasOwnProperty(val);  
        };
    }
    
    // add方法的实现
        this.add = function(val) {
         let items = {};
         this.size = 0;
            if (!this.has(val)) {
                items[val] = val;
                this.size++;    // 累加集合成员数量
                return true;
            }
            return false;
        };
    
      // delete(val)方法的实现
        this.delete = function(val) {
            if (this.has(val)) {
                delete items[val];  // 将items对象上的属性删掉
                this.size--;
                return true;
            }
            return false;
        };
    
        // clear方法的实现
        this.clear = function() {
            items = {};     // 直接将集合赋一个空对象即可
            this.size = 0;
        };
    
        // keys()方法的实现
        this.keys = function() {
            return Object.keys(items);  // 返回遍历集合的所有键名的数组
        };
    
        // values()方法的实现
        this.values = function() {
            return Object.values(items);  // 返回遍历集合的所有键值的数组
        };
    
        // forEach(fn, context)方法
        this.forEach = function(fn, context = this) {
            for (let i = 0; i < this.size; i++) {
                let item = Object.keys(items)[i];
                fn.call(context, item, item, items);     
            }
        };
  • Mapa es como un objeto, en forma de pares de clave y valor. Es una estructura de datos del diccionario (clave se ordena) se llama.

  • Mapa de propiedades y métodos:

    • Tamaño: Devuelve el número de elementos que figuran en el diccionario.
    • de seguridad (clave, valor): añadir elementos al diccionario.
    • get (clave): para encontrar un valor determinado por el valor de la clave y el retorno.
    • tiene (clave): Devuelve cierto si la clave existe en el diccionario, de lo contrario falso.
    • (Clave) de eliminación: la eliminación de los datos correspondientes del diccionario con llave.
    • clear (): Todos los elementos de este diccionario borrados.
    • llaves (): El diccionario contiene todos los nombres clave devueltos como una matriz.
    • valores (): todos los valores contenidos en el diccionario devuelve una matriz.
    • () ParaCada: Todos los miembros de atravesar diccionario.

35. El concepto de la pila

mecanismo 36.EventLoop bucle de eventos

37. Comparar el tipo de complejidad del tiempo, por eso es 1 * 1 ng

38. Generador parecen ser un escenario de aplicación específica?

39. URL solicita principio

40. La diferencia entre pilas y colas

41. Las dos pilas implementar una cola

42. explican algoritmo de diferencias, que es recorrido en profundidad y en amplitud de recorrido

43. La memoria caché del navegador, la memoria caché del sistema operativo, el router caché, la memoria caché ISP

44.git características específicas, la diferencia entre la fuerza y ​​la obtención de información. git a diferencia SVN

45. diferencias JavaScript y Java

46. ​​hablar de pre-renderizados

47. El motor del navegador, V8 se basa en lo que está escrito?

48. Las entre dominios razones y métodos

49.http, HTTP1.0, HTTP1.1, http2.0

Cómo 50.JavaScript herencia?

  1. El préstamo de la herencia constructor
  2. + Constructor prototipo composición cadena de herencia
  3. herencia parasitaria
  4. cadena de herencia Prototype

51. El método y el funcionamiento de la matriz

map: 遍历数组,返回回调返回值组成的新数组
forEach: 无法break,可以用try/catch中throw new Error来停止
filter: 过滤
some: 有一项返回true,则整体为true
every: 有一项返回false,则整体为false
join: 通过指定连接符生成字符串
push / pop: 末尾推入和弹出,改变原数组, 返回推入/弹出项
unshift / shift: 头部推入和弹出,改变原数组,返回操作项
sort(fn) / reverse: 排序与反转,改变原数组
concat: 连接数组,不影响原数组, 浅拷贝
slice(start, end): 返回截断后的新数组,不改变原数组
splice(start, number, value...): 返回删除元素组成的数组,value 为插入项,改变原数组
indexOf / lastIndexOf(value, fromIndex): 查找数组项,返回对应的下标
reduce / reduceRight(fn(prev, cur), defaultPrev): 两两执行,prev 为上次化简函数的return值,cur 为当前值(从第二项开始)

52. JavaScript objetos integrados que tienen?

JavaScript Object es el padre de todos los objetos

objetos de paquete de datos: objeto, matriz booleana, Número de cuerdas, y

Otros objetos: Función, Argumentos, Matemáticas, Fecha, RegExp, error

53. El montaje y modular

¿Por componentización?

A veces, el código de la página es demasiado grande demasiado lógica, o los mismos componentes funcionales se utilizan en muchas páginas, es bastante complicado de mantener, en esta ocasión, tenemos que desarrollar división funcional basado en componentes, composición de los componentes, se ha llegado a una asamblea universal mejorar la legibilidad del código, los costes de mantenimiento pueden reducirse en gran medida.

La explotación de las ventajas del conjunto

Reduce en gran medida el acoplamiento de las respectivas funciones del sistema y mejora la función del interior de la polimerización. Esta ingeniería front-end y reducir el código de mantenimiento, es una gran ventaja, reducir el acoplamiento y mejorar la extensión del sistema, reducir la complejidad del desarrollo, mejorar la eficiencia del desarrollo y reducir los costes de desarrollo.

El principio del desarrollo basado en componentes

  • Una sola mente
  • configurabilidad
  • normativo
  • reutilización
  • mantenibilidad

Beneficios modulares

  • Evitar la contaminación de las variables, conflictos de nombre
  • Mejorar la tasa de reutilización de código
  • Mejora de la capacidad de mantenimiento
  • gestión de la dependencia conveniente

varias formas modulares

  • paquete de funciones
var myModule = {
    var1: 1,
    
    var2: 2,
    
    fn1: function(){
    
    },
    
    fn2: function(){
    
    }
}
复制代码
总结:这样避免了变量污染,只要保证模块名唯一即可,同时同一模块内的成员也有了关系

缺陷:外部可以随意修改内部成员,这样就会产生意外的安全问题
复制代码
  • expresión de la función de ejecución inmediata (IIFE)
var myModule = (function(){
    var var1 = 1;
    var var2 = 2;
    
    function fn1(){
    
    } 
    
    function fn2(){
    
    }

return {
    fn1: fn1,
    fn2: fn2
};
})();
复制代码
总结:这样在模块外部无法修改我们没有暴露出来的变量、函数

缺点:功能相对较弱,封装过程增加了工作量,仍会导致命名空间污染可能、闭包是有成本的

Distinción 54, mouseover, y la MouseEnter

pasar el ratón: Cuando el ratón se mueve sobre un elemento o elementos hijo activarán un evento, por lo que no es una re-activación del proceso de formación de burbujas. Correspondiente evento de eliminación es mouseout

MouseEnter: Cuando el ratón para eliminar el elemento en sí (no contener elementos de los subelementos) desencadenará evento no está burbujeando, correspondiente caso de extracción es mouseleave

Supongo que te gusta

Origin www.cnblogs.com/liea/p/12515041.html
Recomendado
Clasificación