¡JavaScript es un lenguaje de secuencias de comandos que pertenece a la red!
JavaScript es utilizado por millones de páginas web para mejorar el diseño, verificar formularios, detectar navegadores, crear cookies y más.
JavaScript es el lenguaje de secuencias de comandos más popular en Internet.
¡JavaScript es fácil de usar! ¡Te encantará!
JavaScript es un lenguaje de secuencias de comandos interpretado con sintaxis flexible, que permite a diferentes personas escribir diferentes funciones de muchas maneras diferentes. ¿Cómo organizar el código JavaScript para que otros puedan ver de un vistazo que no es simple? ¿Estás esperando que alguien más suspira después de leer tu código, "Resulta que puedes escribir de esta manera"?
N formas de escribir funciones anónimas
La función anónima de JS es una función de auto-ejecución con el nombre de la función no declarado, y el formato es el siguiente:
(función(){})();De hecho, a menudo ponemos ";" Frente al proyecto:
;función(){}();Porque la sintaxis de JS puede omitir las semicolones, pero este mecanismo también puede conducir a errores inesperados. Para evitar errores de sintaxis causados por fusionar y comprimir el código en un archivo después de que se inicia, agregando ";" puede evitar errores desconocidos.
Pero a veces vemos que las bibliotecas o complementos de otras personas escriben funciones anónimas como esta:
+function () {} ();"+" es un operador aquí, y el operador tiene una prioridad extremadamente alta, por lo que la parte de la declaración de función a la derecha con los soportes (en realidad la forma de escribir la ejecución de la función) se ejecuta directamente. De hecho, no puede ser solo el signo "+" al frente, sino que los operadores como "-", "!", "~" Y "++" pueden usarse. Aquí somos solo una introducción a la extensión. El método de escritura específico se utiliza depende de los estándares unificados del equipo.
Abandonar math.ceil () y matemáticas. Redondeo del piso
Tal vez he visto estos dos símbolos ~~ y | 0 en otros códigos, y mire los resultados de ejecución directamente:
>> var a1 = 1.23 >> ~~ a11 >> var a2 = 2.345 >> a2 | 02 >> var a3 = -3.45 >> ~~ a3-3 >> var a4 = -4.5 >> a4 | 0-4
Tenga en cuenta que este método de escritura no es original, pero se acaba de citar para analizar y explicar este método de escritura alternativa. Una explicación simple es que ~ es un operador inverso bit a bits, que puede convertir los números de punto flotante en enteros descartando todos los bits después del punto decimal. Los enteros positivos se pueden convertir en valores hexadecimales no firmados. Luego inverso (~~) negativo y negativo nuevamente para volverse positivo, y obtener el entero original. Es solo que es tan voluntario y desenfrenado. ¿Crees que es una optimización?
Nota: Si necesita realizar operaciones de redondeo estrictos, debe usar este método con precaución, entonces aún debe usar la función matemática.
Si y si no son los únicos
El uso de condiciones if-else es una lógica muy clara, no se ve muy conciso cuando el procesamiento de datos no es grande:
if (a === 1) {// Se recomienda usar el símbolo estrictamente igual "===" aquí, y la conversión de tipo no se realizará a = 2} de lo contrario si (a === 3) {a = 4} else {a = 5}Eche un vistazo a lo siguiente para usar || y && para hacer que el código pierda peso:
((a === 1) && (verdadero, a = 2)) || ((a === 3) && (verdadero, a = 4)) || (a = 5)
Se hará en una línea y perderá peso con éxito. || y &&, el principio simple no debe mencionar. No es fácil de entender al usar el operador de coma. Puede continuar cambiándolo al operador ternario:
(a === 1)? a = 2 :( (a === 3)? (a = 4): (a = 5))
Esta forma de escribir parece ser lo suficientemente simplificada, pero será un poco difícil para otros ver su código.
Reemplace la molesta estructura DOM de costura de cadenas con tostring
Si queremos generar dinámicamente una estructura DOM, generalmente la implementamos así:
VAR TEMPLATE = "<VIV>"+ "<H2> {title} </h2>"+ "<div class = 'content' yattr = ''> {content} </div>"+ "</div>"Si se agregan varios atributos y parámetros, es fácil informar errores cuando las citas grandes y pequeñas se confunden. Sin embargo, ES6 proporciona cadena de plantilla para ayudarnos a resolver este problema, puede escribirlo así:
Template var = <div> <h2> {title} </h2> <div class = 'content' yattr = '' '> {content} </div> </div>Pero el problema es que ES6 aún no ha llegado oficialmente ... no tengas miedo, función. La tostración resolverá la vergüenza cuando no estamos conectados:
var rcomment = ////*([/s/s]*?)/*////; // Multiplicar la función de cadena MS (fn) {return fn.ToString (). Match (rcomment) [1]}; ms (function () {/ * <div> <h2> {title} </h2> <div class = 'content' yattr = ''> {content} </div> </div> */})La salida aquí es la misma que la salida de cadena anterior. Los programadores front-end solo necesitan prestar atención a su propia estructura DOM.
Agregar soporte del módulo AMD, código de inmediato B
Declare la especificación del módulo AMD (definición del módulo asíncrono) al código que escribió, para que otros puedan cargar su módulo directamente a través de la especificación AMD. Si otros no cargan su módulo a través de la especificación, también puede devolver elegantemente un objeto global regular. Echemos un vistazo al método de escritura de jQueryui:
(function (fábrica) {if (typeof define === "function" && define.amd) {// amd. y confía en el complemento "jQuery" define (["jQuery"], fábrica);} else {// browser global factory (jQuery);}} (function ($) {// pon el código module a retornoCámbielo a la estructura del módulo AMD para hacer que su código sea más adecuado para las dependencias de script de carga del lado del navegador. Escriba el código en este formato para asegurarse de que otros sepan que usted es un desarrollador profesional tan pronto como mira el código.
El mejor método de herencia
JavaScript tiene más de diez métodos de herencia, tanto grandes como pequeños. Las ventajas y desventajas de cada método de escritura son diferentes, y cada método no figura uno por uno. Tome un método de herencia común como ejemplo, herencia prototipo:
function parent () {} function child () {} child.prototype = parent.prototypeChild.prototype.constructor = child;Este método en realidad apunta el puntero guardado en Child.Prototype y Parent.Prototype al mismo objeto, por lo que si algunas propiedades se extienden en el prototipo del objeto infantil para que el prototipo del objeto principal continúe heredando más tarde, el prototipo del objeto principal también se reescribirá. Entonces, para resolver este problema, intente pedir prestado un método de escritura de constructor temporal:
función vacía () {} vacía.prototype = parent.prototype; child.prototype = new vacía (); child.prototype.constructor = child;De esta manera, las propiedades y los métodos prototipo del objeto principal están protegidos. "Óptimo" es un poco exagerado, pero en comparación. Creo que todos tienen su propio estilo de escritura, y también existen las ventajas y desventajas de las llamadas de préstamo y se aplican para implementar la herencia de atributos. La longitud es limitada y no les presentaré uno por uno.
Resumir
Todos los métodos de escritura alternativos de JavaScript mencionados anteriormente son el azúcar de sintaxis para una eficiencia fácil de entender o mejorar. Tales métodos son preferibles, como la práctica de omitir IF-ELSE como se mencionó anteriormente. Algunos están diseñados para mejorar la compatibilidad y el rendimiento de nuestro código, como AMD y métodos de herencia. ... Soy un novato, y ciertamente hay algunos contenidos incompletos e inexplicables en el contenido anterior.
El contenido anterior es una introducción relacionada con los métodos de escritura alternativa para JavaScript, ¡espero que sea útil para todos!