├── .gitignore ├── README.md ├── SUMMARY.md ├── assets └── javascript.png ├── bibliografia.md ├── chapter1.md ├── conceptos.md ├── currying.md ├── ecmascript.md └── javascript.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Node rules: 2 | ## Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 3 | .grunt 4 | 5 | ## Dependency directory 6 | ## Commenting this out is preferred by some people, see 7 | ## https://docs.npmjs.com/misc/faq#should-i-check-my-node_modules-folder-into-git 8 | node_modules 9 | 10 | # Book build output 11 | _book 12 | 13 | # eBook build output 14 | *.epub 15 | *.mobi 16 | *.pdf 17 | .DS_Store 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | # Acerca del Diccionario 4 | 5 | En el camino del aprendizaje de este lenguaje o quizás si ya eres un profesional, hay ocasiones en las que simplemente olvidas algunos conceptos y funcionalidad del lenguaje y quieres tener una definición corta y breve de lo que necesitas, pero al buscar en la web en ocasiones es un poco tedioso, tienes que leer artículos completos para entender todo, cuando lo que querías saber es qué significa, cómo funciona y en una forma rápida. 6 | 7 | JavaScript es un lenguaje de mucho uso en la actualidad, no solo del lado del cliente, también del lado del servidor gracias a **NODE.JS, **con una cantidad de frameworks y librerías como React, Angular, Vue, Backbone, Polymer, entre otros, que permiten llevar el lenguaje a tener múltiples usos, como creación de aplicaciones móviles multiplataforma gracias a NativeScript por ejemplo, pero siempre es importante conocer las bases del lenguaje, es por eso que se quiere aportar contenido de los conocimientos que vamos adquiriendo, para compartir lo bueno y maravilloso de JavaScript. 8 | 9 | ### Contenido 10 | 11 | En este Diccionario van a encontrar las definiciones cortas y concisas de las funciones, objetos, eventos, document, de JavaScript. También post mas extensos tratando mas a fondo algunos temas importantes. 12 | 13 | _Contenido:_ 14 | 15 | * [JavaScript](https://www.diccionariojavascript.info/javascript.html) 16 | * [Definiciones ](https://www.diccionariojavascript.info/conceptos.html) 17 | * [Funciones](https://www.diccionariojavascript.info/chapter1.html) 18 | * [Currying](https://www.diccionariojavascript.info/currying.html) 19 | * [ECMAScript](https://www.diccionariojavascript.info/ecmascript.html) 20 | * [Bibliografia](https://www.diccionariojavascript.info/bibliografia.html) 21 | 22 | _Se seguira agregando contenido._ 23 | 24 | ### Importante 25 | 26 | El diccionario no sustituye la documentación oficial y solo quiere ser un material de consulta, que reune las definiciones en un solo sitio, con los aportes de las personas que desarrollan todos los días con el lenguaje. El diccionario no esta creado con fin lucrativo. 27 | 28 | ### Comparte 29 | 30 | Si te gusta el contenido y crees que puedes compartir tus conocimientos con la comunidad, corregir o añadir contenido, no dudes en hacer un _fork_, un \_pull request \_en [**Github**](https://github.com/Project-dictionary/Diccionario-JavaScript) vas a encontrar el repositorio sincronizado con este book. Si crees que el contenido le es util a personas que sabes que trabajan o aprenden JavaScript, comparte este diccionario. 31 | 32 | Para colaborar es necesario tener presente que se trata de un\_** DICCIONARIO **\_y por lo tanto hay que agregar: 33 | 34 | * Definiciones cortas y concisas. 35 | * Si quires agregar un tema que necesita una explicación mas extensa, puedes agregar un post en el cual puedes explicar mucho mejor. 36 | * Agregar las fuentes en la bibliografía si extraes contenido de libros, documentación, paginas web. etc. 37 | 38 | ### Feedback 39 | 40 | Estamos disponibles en todo momento para recibir dudas o correcciones que pueda tener el contenido del diccionario. Es muy importante el feedback, nos ayuda a crear un mejor contenido. Nos pueden encontrar en twitter 41 | 42 | * [Fredy bustos](https://twitter.com/bustosfredy) 43 | * [Carlos Millan](https://twitter.com/reactdevelop) 44 | * [Roberto S. Lopez](https://twitter.com/Roberto_SLopez) 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | * [Diccionario](README.md) 4 | * [JavaScript](javascript.md) 5 | * [Definiciones](conceptos.md) 6 | * [ Funciones](chapter1.md) 7 | * [Currying](currying.md) 8 | * [ECMAScript](ecmascript.md) 9 | * [Bibliografia](bibliografia.md) 10 | 11 | -------------------------------------------------------------------------------- /assets/javascript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-dictionary/Diccionario-JavaScript/5ea462feabb3f33d720857241f127f47f6ccb161/assets/javascript.png -------------------------------------------------------------------------------- /bibliografia.md: -------------------------------------------------------------------------------- 1 | # **Bibliografía** {#bibliografía} 2 | 3 | _**ECMAScript 6.**_ 4 | 5 | --es6-features 6 | 7 | --web: [es6-features](http://es6-features.org/#Constants) 8 | 9 | _**JavaScript**_\(Jun 13, 2017\) 10 | 11 | --¿que es JavaScript? 12 | 13 | --web: [developer.mozilla.org](https://developer.mozilla.org/en-US/docs/Web/JavaScript/About_JavaScript) 14 | 15 | **Eventos.** 16 | 17 | --mouseEvent 18 | 19 | --web: [www.w3.org](https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click) 20 | 21 | **Aprendiendo JavaScript** 22 | 23 | --Carlos Azaustre 24 | 25 | --Ebook: [Aprendiendo JavaScript](https://leanpub.com/aprendiendo-javascript) 26 | 27 | -------------------------------------------------------------------------------- /chapter1.md: -------------------------------------------------------------------------------- 1 | # _**Funciones**_ 2 | 3 | Las funciones en `JavaScript` son un `objeto`, heredan sus propiedades de la clase padre `object.`Son bloques de código ejecutable, le podemos pasar parámetros y operar con ellos. Podemos modular nuestros programas y estructurar en bloque que realicen una tarea en concreto. 4 | 5 | Las funciones al terminar su ejecución devuelven un valor que obtenemos con el parámetro `return`. Pueden llevar un nombre para ser invocadas más adelante o pueden no tener nombre y son llamadas`funciones anónimas`. Para evitar que el valor `undefined` nos provoque errores y no poder controlarlo, podemos usar uno de los operadores `booleanos`. 6 | 7 | `OR -- ||` podemos usarlo para asignar un valor por default si no está definido. 8 | 9 | `Let nombre = nombre || "Juan"` 10 | 11 | _**Funciones Anidadas:**_ Pueden tener otras funciones dentro de ellas, ocasionando nuevos ámbitos para las `variables`definidas dentro de cada función. Para acceder a las funciones fuera de ellas tenemos que usar el operador doble paréntesis`()()` 12 | 13 | **Arrow Functions: **Es la nueva forma de crear funciones que viene con las especificacines EcmaScript 5. 14 | 15 | Su sintaxis es la siguiente: 16 | 17 | ```js 18 | const crearUsuario = () =>{...} 19 | ``` 20 | 21 | En las Arrow Functions se omite la palabra function y se agrega un igual y un signo de menor después de los argumentos \(en forma de flecha\). 22 | 23 | **Async/Await: **Async/Await es una nueva forma de manejar promesas en Javascript. Disponemos de dós métodos para trabajar con este tipo de funciones, async y await. Su uso es bastante sencillo, utilizaremos async para declarar las funciones asíncronas, y dentro de estas funciones utilizaremos await para suspender la ejecución hasta que la expresión que le sigue devuelva un valor. Veamos un ejemplo sencillo. 24 | 25 | ```js 26 | async function asyncFunction () { 27 | const foo = await asyncOperation() 28 | return foo 29 | } 30 | ``` 31 | 32 | **Callback: **Es la manera mas comun de controlar la asincronía en JavaScript, Es una funcion que se establece para realizar una llamada de vuelta en un momento del tiempo indeterminado, usada como parametro de funcion en algun evento o funcion que presente asincronía. 33 | 34 | **Closures: **Los closures o funciones de cierre, son un patrón de diseño muy utilizado en`JavaScript.`Es una función que encapsula`variables`y definiciones`locales`, únicamente accesibles si son devueltas con el operador`return`, este patrón hace posible modularizar nuestro código. 35 | 36 | ```js 37 | function foo(lenguaje) { 38 | const nombretrans = 'Babel' 39 | return function(){ 40 | console.log(lenguaje+' es un lenguaje de programacion y '+nombretrans+' un transpilador poderoso') 41 | } 42 | } 43 | 44 | let bar = foo('Javascript')//foo devuelve una funcion que es almacenada en bar 45 | bar() //Debido a que cuando foo fue llamada su parametro 46 | //era 'Javascript' entonces recuerda ese mismo valor 47 | let baz = foo('JS') 48 | baz()//Aca recuerda JS, Babel siempre se mantiene ya que es una constante en la funcion 49 | 50 | //Lo importante es que una function interna recuerda 51 | //las variables de una funcion externa aun cuando la externa 52 | //no se esta ejecutando. 53 | ``` 54 | 55 | **Generadores: **Es un objeto que sirve para decirle a`JavaScript`que nuestra función en un generador y se debe indicar con un asterisco de la siguiente forma: 56 | 57 | ```js 58 | function* generador() { 59 | yield 1; 60 | yield 2; 61 | yield 3; 62 | } 63 | 64 | var g = generador(); // "Generador { }" 65 | ``` 66 | 67 | Si creamos un generador debemos colocar la palabra clave`yield`la cual indica que cuando llamemos a la función después de la primera vez, esta iniciara en la linea después de`yield`. El generador convierte en objeto la función. 68 | 69 | **Immediately Invoked Function Expressions \(IIFEs\): **Existe un tipo de funcion llamado IIFEs, usadas comunente patrones de diseño de software como module pattern , factory pattern etc... IIFEs tiene diferentes implementaciones 70 | 71 | ```js 72 | // Classic 73 | (function(){})(); 74 | 75 | // Crockford's favorite 76 | (function(){}()); 77 | 78 | // Unary versions 79 | +function(){}(); 80 | 81 | // Facebook version 82 | !function(){}(); 83 | 84 | // Crazy version 85 | !1%-+~function(){}(); 86 | ``` 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /conceptos.md: -------------------------------------------------------------------------------- 1 | # **Definiciones **_**JavaScript**_ {#definiciones-javascript} 2 | 3 | **Arrow Functions: **Es la nueva forma de crear funciones que viene con las especificacines EcmaScript 5. 4 | 5 | Su sintaxis es la siguiente: 6 | 7 | ```js 8 | const crearUsuario = () =>{...} 9 | ``` 10 | 11 | En las Arrow Functions se omite la palabra function y se agrega un igual y un signo de menor después de los argumentos \(en forma de flecha\). 12 | 13 | **Async/Await: **Async/Await es una nueva forma de manejar promesas en Javascript. Disponemos de dós métodos para trabajar con este tipo de funciones, async y await. Su uso es bastante sencillo, utilizaremos async para declarar las funciones asíncronas, y dentro de estas funciones utilizaremos await para suspender la ejecución hasta que la expresión que le sigue devuelva un valor. Veamos un ejemplo sencillo. 14 | 15 | ```js 16 | async function asyncFunction () { 17 | const foo = await asyncOperation() 18 | return foo 19 | } 20 | ``` 21 | 22 | Al ejecutar el código anterior, la función asyncFunction\(\) bloqueará la ejecución del resto de código del programa hasta disponer del valor devuelto por su función interna asyncOperation\(\). 23 | 24 | **Bind: **La función`bind()`crea una nueva función \(función ligada\) con el mismo cuerpo \(propiedad interna`call`en términos de`ECMAScript 5`\) como la función que será llamada con la referencia`this`asociada al primer argumento de`bind()`, el cual no podrá ser sobrescrito.`bind()`también acepta parámetros predeterminados que antecederán al resto de los parámetros específicos cuando la función objetivo sea llamada. Una función ligada también puede ser construida utilizando el operador the`new`al hacerlo, actuará como si en su lugar hubiera sido construida la función objeto. 25 | 26 | **Bucles: **Bloques de código que se ejecutan mientras se cumpla una condición. Tres elementos controlan el flujo del`bucle`: 27 | 28 | ```js 29 | Inicialización: Fija los valores con los que iniciamos el bucle. 30 | 31 | _Permanencia:_ Fija el tiempo en el que se permanece en el bucle. 32 | 33 | _Actualización:_ determina cuando se actualizan las variables decontrol al ejecutarse la iteración. 34 | ``` 35 | 36 | **Callback: **Es la manera mas comun de controlar la asincronía en JavaScript, Es una funcion que se establece para realizar una llamada de vuelta en un momento del tiempo indeterminado, usada como parametro de funcion en algun evento o funcion que presente asincronía. 37 | 38 | **Closures: **Los closures o funciones de cierre, son un patrón de diseño muy utilizado en`JavaScript.`Es una función que encapsula`variables`y definiciones`locales`, únicamente accesibles si son devueltas con el operador`return`, este patrón hace posible modularizar nuestro código. 39 | 40 | ```js 41 | function foo(lenguaje) { 42 | const nombretrans = 'Babel' 43 | return function(){ 44 | console.log(lenguaje+' es un lenguaje de programacion y '+nombretrans+' un transpilador poderoso') 45 | } 46 | } 47 | 48 | let bar = foo('Javascript')//foo devuelve una funcion que es almacenada en bar 49 | bar() //Debido a que cuando foo fue llamada su parametro 50 | //era 'Javascript' entonces recuerda ese mismo valor 51 | let baz = foo('JS') 52 | baz()//Aca recuerda JS, Babel siempre se mantiene ya que es una constante en la funcion 53 | 54 | //Lo importante es que una function interna recuerda 55 | //las variables de una funcion externa aun cuando la externa 56 | //no se esta ejecutando 57 | ``` 58 | 59 | **Click: **Se activa cuando se presiona el botón del mouse y ejecuta una función que recibe como parámetro, dicha función recibe el evento. 60 | 61 | ```js 62 | const button = document.getElementById("test") 63 | 64 | button.addEventListener("click",function(event{ 65 | console.log('hola mundo') 66 | } 67 | ``` 68 | 69 | **Const: **Define una constante que no va a cambiar su valor durante el tiempo. 70 | 71 | ```js 72 | const nombre = 'Juan' 73 | ``` 74 | 75 | **Constructor: **El método constructor es un método especial para crear e inicializar un objeto creado a partir de una clase. 76 | 77 | ```js 78 | Sintaxis: constructor([arguments]) {...} 79 | ``` 80 | 81 | **Currying: **Una técnica que utiliza una evaluación parcial,[**Currying**](https://www.diccionariojavascript.info/currying.html)se refiere al proceso de tomar una función con`n`argumentos y transformarla en`n`funciones que cada una toma un solo argumento. 82 | 83 | **Document.querySelectorAll:**Devuelve una lista de elementos ,que son iguales al grupo de selectores. El`NodeList`contendrá todos los elementos que corresponde con cualquiera de los selectores especificados. 84 | 85 | ```js 86 | let elem = document.querySelectorAll("div.ejemplo1, div.ejemplo2"); 87 | ``` 88 | 89 | ```js 90 | function getElements(el) { 91 | return document.querySelectorAll(el); 92 | } 93 | getElements("div.ejemplo"); 94 | ``` 95 | 96 | **Document.getElementById: **Devuelve el elemento por su id; id que se usa para identificar de forma única el elemento, que se encuentra en el html con el atributo`id`. 97 | 98 | ```js 99 |
100 | 101 | let element = document.getElementById('ejemplo'); 102 | ``` 103 | 104 | **Document.getElementsByClassName: **Devuelve una colección que contiene todos los elementos que contenga la clase del atributo, por ejemplo. 105 | 106 | ```js 107 | 108 | 109 | 110 | 111 | 112 | var ejemplo= document.getElementsByClassName("ejemplo") 113 | 114 | ejemplo[0].innerHTML = "Soy la clase ejemplo del primer div!" 115 | ``` 116 | 117 | **ECMAScript: **ECMAScript se refiere a las nuevas características del estándar`ECMA-262`conocidos como**JavaScript**, introducido después de [ECMAScript 2015](https://www.diccionariojavascript.info/definiciones.html). Las nuevas versiones de las especificaciones ECMAScript se liberan anualmente, ES2016 será liberado y el ES2017 es el proyecto actual ECMAScript. 118 | 119 | **Element.setAttribute: **Agrega el valor de un atributo en el elemento especificado. Si el atributo ya existe, el valor se actualiza, en el caso contrario se agrega el atributo con el nombre y el valor especificado.Elemento 120 | 121 | ```js 122 | element.setAttribute (nombre, value); 123 | 124 | name // especifica el nombre del atributo que se va a establecer. string 125 | value // contiene el valor a asignar al atributo. string 126 | ``` 127 | 128 | **Eventos: **Los eventos de **JavaScript **permiten la interacción entre las aplicaciones JavaScript y los usuarios. Cuando se toca un botón, cuando se pulsa una tecla determinada, se produce un evento. Sin embargo no todos los eventos los produce el usuario, cuando se carga una pagina también se produce un evento. 129 | 130 | **ForEach: **Es uno de los objetos de la clase`array`. ejecuta la función`callback`una vez por cada elemento presenten orden ascendente. No es invocada para índices que han sido eliminados o que no hayan sido inicializados. 131 | 132 | **ForIn: **Podemos iterar sobre las propiedades de un`objeto`. 133 | 134 | ```js 135 | let apple = { 136 | name: 'apple', 137 | category: 'fruit', 138 | price: 100 139 | } 140 | for(let prop in apple){ 141 | console.log('la propiedad ' + prop + 'contiene '+ apple [prop\]); 142 | } 143 | // Devuelve las propiedades del objeto Apple, name, category, price. 144 | ``` 145 | 146 | **Función: **Las funciones en`JavaScript`son un`objeto`, heredan sus propiedades de la clase padre`object.`Son bloques de código ejecutable, le podemos pasar parámetros y operar con ellos. Podemos modular nuestros programas y estructurar en bloque que realicen una tarea en concreto. [**Mas.**](https://www.diccionariojavascript.info/chapter1.html) 147 | 148 | **Funciones Asíncronas: **Son funciones que al ejecutarse, devuelven una promesa. Cuando una función asíncrona devuelve un valor, la promesa será resuelta con el valor devuelto. Cuando una función asíncrona lanza una Excepción o un valor, la promesa será rechazada con el valor lanzado. 149 | 150 | **Generadores: **Es un objeto que sirve para decirle a`JavaScript`que nuestra función es un generador y se debe indicar con un asterisco de la siguiente forma: 151 | 152 | ```js 153 | function* generador() { 154 | yield 1; 155 | yield 2; 156 | yield 3; 157 | } 158 | 159 | var g = generador(); // "Generador { }" 160 | ``` 161 | 162 | Si creamos un generador debemos colocar la palabra clave`yield`la cual indica que cuando llamemos a la función después de la primera vez, esta iniciara en la linea después de`yield`. El generador convierte en objeto la función. 163 | 164 | **Hoisting o “elevamiento”: **Javascript primero busca las declaraciones de funcion \( estas van primero que las declaraciones de variables ya que tienen prioridad\),el hoisting en funciones es de 2 maneras las funciones como declaracion son llevadas al tope del actual scope, por otro lado las funciones como expresion se eleva su variable al tope de ese scope de tal manera que esta no funciona por medio del hoisting, las pone en el tope del scope, como undefined, solo hasta llega al lugar donde fueron anteriormente declaradas \( la expresion \) sera inicializado su valor real de esta ultima forma ocurre con las variables. 165 | 166 | ```js 167 | // Ejemplo1 168 | var foo = "12" 169 | 170 | function foo(){ 171 | 172 | console.log("foo function"); 173 | } 174 | 175 | console.log(foo) -> 12 ( foo is not a function ) 176 | 177 | // Ejemplo2 178 | console.log(foo) -> undefined 179 | 180 | var foo = function(){ 181 | 182 | console.log("foo function"); 183 | } 184 | 185 | //ocurre que 186 | 187 | var foo = undefined; 188 | 189 | foo = function(){...}; 190 | ``` 191 | 192 | **Immediately Invoked Function Expressions \(IIFEs\): **Existe un tipo de funcion llamado IIFEs, usadas comunente patrones de diseño de software como module pattern , factory pattern etc... IIFEs tiene diferentes implementaciones 193 | 194 | ```js 195 | // Classic 196 | (function(){})(); 197 | 198 | // Crockford's favorite 199 | (function(){}()); 200 | 201 | // Unary versions 202 | +function(){}(); 203 | 204 | // Facebook version 205 | !function(){}(); 206 | 207 | // Crazy version 208 | !1%-+~function(){}(); 209 | ``` 210 | 211 | _**Inmutabilidad**_: Tiene por objetivo hacer que los parámetros de un objeto sean no modificados o inmutables. 212 | 213 | El operador`===`nos ayuda a comparar objetos, ejecutando la comparación no directamente a los datos del objeto sino, la referencia del objeto. Cuando asignamos un objeto a otro estamos haciendo que ambos apunten al misma referencia, por eso al modificar un objeto el otro también se vera afectado, por que ambos tienen lamisca referencia de memoria. 214 | 215 | **Iteradores: **Nos permites hacer listas infinitas de elementos haciendo los distintos arreglos, los cuales tienen un numero finito de elementos definidos, siempre debe tener el método`next()` 216 | 217 | Para los iterados podemos obtener lo siguiente: 218 | 219 | ```js 220 | next()—itera los datos, es una function 221 | 222 | value()—devolver el valor del dato 223 | 224 | done()—sera un indicador para cuando la lista se haya terminado y recibe true o false. Por default siempre es false 225 | ``` 226 | 227 | Con los iteradores es muy fácil sencillo realizar un for y obtener los datos.. 228 | 229 | ```js 230 | for (let value of fibo){ 231 | console.log(value) 232 | } 233 | ``` 234 | 235 | **JSON: **Es un objeto`JavaScript`con unos de implementación que nos permite serializarlo para poder inutilizarlo como intercambio de datos entre servicios. Las propiedades del`objeto`deben ser`strings`para poder codificarlo y decodificarlo. Los tipos`nan`e`infinity`se codifican como`null`. Si queremos usar el intercambio de datos debemos usar la función. 236 | 237 | `JSON.stringify()`// devuelve en un string la información del objeto que se le pasa por parámetro. 238 | 239 | **Let: **Define el ámbito de la`variable`en donde a sido definida global o ámbito de una function. 240 | 241 | **Map: **Retorna un`array`, transforma los elementos de entrada y devuelve un`array`, con los elementos transformados del mismo tamaño que el original. Ademas permite encadenar funciones, usar`sort, find, reduce`etc. 242 | 243 | **Math: **Es un objeto de javascript que posee propiedades y métodos creados por constantes y funciones matemáticas. No es un objeto de función, no se puede editar, todos los métodos y propiedades son estáticos. 244 | 245 | **Math.floor: **Devuelve el máximo entero menor o igual a un número. Como`floor`es un método estático, siempre debe usarse como`Math.floor(),`en lugar de usarlo como método de un objeto. 246 | 247 | ```js 248 | Math.floor(5.7); // Devuelve 5 249 | Math.floor(5.4); // Devuelve 5 250 | Math.floor(5.1); // Devuelve 5 251 | ``` 252 | 253 | **Math.ceil: **La función devuelve el entero mayor o igual a un número dado. Como`ceil`es un método estático, siempre debe usarse como`Math.ceil()`, en lugar de usarlo como método de un objeto. 254 | 255 | ```js 256 | Math.ceil(.60); // 1 257 | Math.ceil(-4.5); // -4 258 | Math.ceil(5.3); // 5 259 | ``` 260 | 261 | **Math.round: **La función retorna el valor de un número redondeado al entero más cercano. Si la porción fraccionaría del número es 0.5 o mayor, sera redondeado al siguiente número entero superior. Si la porción de la fracción del número es menor a 0.5, sera redondeado al siguiente entero inferior. Como round es un método estático, siempre debe usarse como`Math.round(),`en lugar de usarlo como método de un objeto. 262 | 263 | ```js 264 | Math.round(20.5); // es igual a 21 265 | Math.round(12.2.); // es igual a 12 266 | Math.round(-10.7); // es igual a -11 267 | ``` 268 | 269 | **Math.random: **Retorna un punto flotante, un número aleatorio dentro del rango`[0, 1].`toma desde el numero 0 \(Incluido\) hasta el 1 pero sin incluirlo, y se puede escalar hasta el rango deseado. 270 | 271 | ```js 272 | function random(){ 273 | return Math.random() 274 | } 275 | ``` 276 | 277 | **MouseEvent: **Son eventos que se producen cuando el usuario interactua con el mouse, algunos eventos comunes que se utilizan son:`click`,`dblclick`,`mouseup`,`mousedown`. MouseEvent deriva de`Event`. Aunque el método`MouseEvent.initMouseEventp()`se mantiene para la compatibilidad con versiones anteriores. 278 | 279 | **Mousedown: **Este evento se activa cuando se presiona el botón del mouse y se arrastra un elemento. Varia una operación de arrastrar y soltar; al iniciar una selección de texto; al iniciar una interacción de desplazamiento en combinación con el botón central del ratón, si es compatible. solo funciona en`