JavaScript
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
JavaScript es un lenguaje de programacion interpretado, es orientado a objetos, basado en prototipos, imperativo, debilmente tipado y dinamico.
Éste lenguaje es mayormente utilizado en las páginas web para hacerlas más dinámicas (lado del cliente).
También es utilizado para el lado del servidor, por ejemplo, con node.js
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Convierte un numero a un string con x dgitos decimales (por defecto es cero).
digitos debe ser un numero entre 0 y 20
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Convierte un numero a string.
base debe ir entre 2 y 36, y por defecto es 10.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Existen diferentes valores que se denominan falsos en JS, es decir, aquellos que en un condicional retornarán falso.
Â
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Se puede utilizar comillas simples o dobles para denir un string.
En JS no existe el tipo caracter.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Retorna el caracter en la posicion pos. Si pos es menor a cero o mayor al tamaño del string, retorna una cadena vacÃa.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Busca una letra a partir de una posicion pos. Si no se define pos, por defecto es cero. Retorna la posicion de la primer ocurrencia que encuentre. Si no encuentra letra en el string, retorna -1.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Crea un nuevo string copiando una porcion de otro string. Si inicio es negativo, se le suma el tamaño del string. n es opcional, por defecto es el tamaño del string.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Crea un arreglo de strings partiendo el string en pedazos.
limite es la cantidad de piezas que van a ser partidas, este valor es opcional.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Convierte un string a minúsculas y mayúsculas, respectivamente.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
En JS todos los valores son OBJETOS, exceptuando los
números, strings, booleanos(true, false), null, y undefined, los cuales son Object-like (tienen métodos pero son inmutables).
Un objeto es un contenedor de propiedades, caracterizados por un nombre y un valor, donde el nombre puede ser cualquier string (incluido el ""), y su valor puede ser cualquiera, excluyendo undefined.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Se debe tener mucho cuidado a la hora de declarar objetos e igualarlos a alguno ya existente, ya que no se hace una copia si no que ambos objetos referencian el mismo, si modifico uno, el otro tambien cambiará.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Todos los objetos de JS estan vinculados a un objeto prototipo del cual pueden heredar sus propiedades: Object.prototype.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Se pueden añadir atributos y metodos tanto al objeto creado como al objeto prototipo.
Tambien se pueden modicar los objetos estandar de JS como son arrays, Date, RegExp, function, etc
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Otra forma de crear objetos es especicando cual va a ser su prototipo.
Prototype chain: Cada objeto tiene un enlace interno a otro objeto: su prototipo. Ese objeto prototipo tiene su propio prototipo, y asà sucesivamente hasta que se alcanza un objeto cuyo prototipo es null. Por definición, null no tiene prototipo, y actúa como el final de esta cadena de prototipos.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Existe un método para remover un atributo de un objeto, este es delete.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Para evitar la mala interaccion con otras aplicaciones, widgets y librerÃas, es recomendable utilizar una única variable que contenga toda la aplicacion, de esta forma:
Â
var MYAPP = MYAPP || {};
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Todo en JS son objetos, inclusive las funciones.
Ésta es la razon por la cual podemos almacenar funciones en variables, objetos y arreglos.
Se pueden enviar funciones como argumentos a otras funciones, y una función puede retornar otra.
Ademas pueden contener metodos.
Las funciones están vinculadas a Function.prototype, el cual a su vez está vinculado a Object.prototype.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Existen dos formas de crear una función: declarativas y de expresión.
function f(){} // declarativa
var fun = function f(){}; // de expresión
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
La diferencia entre ambas radica en que la primera forma parte de un programa global, y son evaluadas antes que cualquier otra expresion. La segunda es una expresion que forma parte de un punto concreto, y es evaluada en tal punto.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
A parte de los parametros definidos por una funcion, este recibe siempre this y arguments.
No se muestra mensaje de error si la cantidad de parámetros enviados a una función no coincide con las esperadas.
Si se envÃan más parametros de los esperados, estos se ignoran; si por el contrario, se envÃan menos parametros de
los esperados, el valor undefined será sustituido en estos valores.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Scopes se reere al alcance de las variables en cada funcion o en todo el codigo.
Pueden ser definidas local o globalmente.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
This hace referencia al objeto que hace el llamado, y éste valor cambia dependiendo del scope al que estamos sometidos.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Es una forma de construir funciones, nos permite crear nuevas funciones combinando una funcion y un argumento.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
El problema se presenta cuando queremos hacer referencia al mismo objeto del padre en las funciones hijas, pero cuando cambiamos de scope se pierde dicha referencia:
obj.metodo2 = function () {
console.log("Retorna : ",this);
setTimeout(function () {
console.log("El otro retorna : ",this);
}, 1000);
};
obj.metodo2();
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Cuando hablamos de Closures nos referimos al alcance que tienen las funciones internas con respecto a sus propias variables locales y a las que estan por fuera de ellas.
Podramos decir que todos los "hijos" pueden acceder a las variables de sus "padres", pero no en sentido contrario.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Los Closures son utilizados para el encapsulamiento, ya que en JS no existe otra forma de hacer funciones, objetos o variables privados
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
La herencia es un mecanismo para la reutilizacion y extensibilidad del codigo.
En lenguajes orientadas a objetos, los objetos son instancias de una clase, y una clase puede heredar de otra.
JS es un lenguaje prototipado, lo que signica que los objetos pueden heredar directamente de otros objetos.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Los arreglos en JS tienen el mismo funcionamiento que en otros lenguajes de programacion.
Éstos heredan de Array.prototype, en el cual se tienen definidos diferentes métodos.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Para conocer el tamaño de un arreglo se accede a la propiedad length.
Si almacenamos un elemento en una posicion que no está definida en el arreglo, el tamaño de éste incrementará para contener el nuevo elemento.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Las matrices en JS se implementan como un arreglo de arreglos.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Para concatenar elementos al final de un arreglo se utiliza concat() donde elementos son todos los elementos que quieren ser concatenados.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Convierte un array en un string con un separador, por defecto es ","
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Remueve y retorna el ultimo elemento en el arreglo.
Si el arreglo está vacÃo, retorna undefined.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Agrega elementos al nal de un arreglo.
Retorna el tamaño del arreglo.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Reversa un arreglo, retornándolo.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Hace una copia supercial de un pedazo de un arreglo.
n es opcional, por defecto es el tamaño del arreglo.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Remueve elementos de un arreglo reemplazandolos con nuevos elementos.
cantidad es la cantidad de elementos que van a ser reemplazados comenzando desde inicio, elemento son los nuevos elementos a insertar.
Retorna los elementos removidos.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
Agrega elementos a un arreglo pero posicionandolos al comienzo de éste.
"Empuja" el resto de elementos a la derecha. Retorna el nuevo tamaño del arreglo.
developerjoint@gmail.com
/jointDeveloper
/jointDev
jointdeveloper.com
https://www.sharelatex.com/project/576414791272fa5867c12ff2
JavaScript: The Good Parts.
Douglas Crockford