SlideShare una empresa de Scribd logo
Instructores
JavaScript Básico
Rodolfo Campos
@camposer
Índice
Introducción
Variables, funciones
Operadores y funciones matemáticas
Estructuras de control de flujo
Matrices de JavaScript
Manejo de cadenas de texto
Trabajando con fechas y horas
Programación Orientada a Objetos con JavaScript
Los eventos
Los objetos del navegador
Formularios y controles HTML intrínsecos
Índice
Almacenando información del usuario: las cookies
Expresiones regulares
Introducción a AJAX
Introducción
JavaScript (abreviado comúnmente "JS") es un lenguaje de
programación interpretado, dialecto del estándar ECMAScript.
Se define como orientado a objetos, basado en prototipos,
imperativo, débilmente tipado y dinámico.
Se utiliza principalmente en su forma del lado del cliente
(client-side), implementado como parte de un navegador web
permitiendo mejoras en la interfaz de usuario y páginas web
dinámicas, aunque existe una forma de JavaScript del lado del
servidor (Server-side JavaScript o SSJS).
JavaScript está compuesto de diferentes elementos, los más
destacados: el lenguaje per se (ECMAScript) y DOM.
Introducción
ECMAScript define:
La sintaxis del lenguaje.
Manejo de errores.
Tipos de datos.
Objetos globales.
Mecanismo de herencia basada en prototipos.
Objetos y funciones predefinid@s.
Soporte de modo estricto.
DOM define la estructura del documento, arborescente, y cómo
interactuar con ésta.
Valores
Tipo Ejemplos
Numérico 42, 3.141516
Lógico true / false
Strings “cadena”
Vacío null
undefined
Para variables sin inicializar
o funciones que no retornan
parámetros
Variables y constantes
Las variables referencian valores en la aplicación.
El nombre de una variable puede comenzar con una letra, guión
bajo o símbolo de dólar y seguir con letras o números. Son
diferenciadas mayúsculas de minúsculas.
Si una variable no es definida dentro de una función se reconoce
como de ámbito global.
var a = 2;
También se pueden definir constantes
const prefix = '212';
Arrays
var array = new Array();
var mixto = [ 1, 2, 3, “hola” ];
// Operando con el array mixto
console.log(mixto); // => 1, 2, 3, “hola”
mixto[0] = 33; // primera posición
mixto[3] = 2000; // primera posición
mixto[5] = 0; // primera posición
console.log(mixto); // => 33, 2, 3, 2000, undefined, 0
// Operando con el array array
array[array.length] = “uno”;
console.log(array); // => “uno”
Arrays
var clasico = new Array();
clasico[0] = 0;
clasico[1] = 1;
clasico[2] = "hola";
clasico.push("nuevo");
console.log(clasico.pop());
Funciones
Las funciones son un tipo especial de variable.
Pueden retornar o no un valor y en su firma sólo deben
especificar un nombre y sus parámetros de entrada.
Todos los parámetros son pasados por copia, excepto los
objetos, que son referencias.
function imprimir(mensaje) { console.log(mensaje); }
function sumar(a, b) { return a + b; }
var multiplicar = function(a, b) { return a * b; }
Estructuras de control
El switch y do-while funcionan exactamente igual que en otros
lenguajes, por ejemplo: Java. Luego, JavaScript provee una
estructura for-each diferente:
for (var i in array) {
console.log(array[i]);
}
Matrices
Las matrices son definidas dinamicamente. Al igual que en
Java, se pueden utilizar arrays bidimensionales irregulares.
var matriz = [ [1, 2], [3, 4], [5, 6] ];
console.log(matriz[0][1]); // => 2
Cadenas
JavaScript diferencia entre los strings de tipo primitivo y los de tipo
objeto.
var s_prim = "foo";
var s_obj = new String(s_prim);
console.log(typeof s_prim); // "string"
console.log(typeof s_obj); // "object"
/***********Diferencias con eval ****************/
s1 = "2 + 2";
s2 = new String("2 + 2");
console.log(eval(s1)); // => 4
console.log(eval(s2)); // => “2 + 2”
Fechas
JavaScript provee la clase Date para manipular fechas y horas. La
referencia completa aquí.
var today = new Date();
var birthday = new Date("December 17, 1995 03:24:00");
var birthday = new Date(1995,11,17);
var birthday = new Date(1995,11,17,3,24,0);
var start = new Date();
doSomethingForALongTime();
var end = new Date();
// tiempo en milisegundos
var elapsed = end.getTime() - start.getTime();
Programación Orientada a Objetos
// No existe la sobrecarga en javascript!!
function Producto(_nombre) {
var nombre = _nombre;
this.setNombre = function(_n) { nombre = _n; }
this.getNombre = function() { return nombre; }
this.toString = function() {
return "(nombre: " + this.getNombre() + ")";
}
}
var p = new Producto("Cámaras");
console.log(p); // => "(nombre: Cámaras)"
console.log(p.getNombre()); // => "(nombre: Cámaras)"
console.log(p.nombre); // => falla!
Prototipos
function Persona() {
this.cantar = function() { console.log("Estoy cantando"); }
this.llorar = function() { console.log("Estoy llorando"); }
}
var p1 = new Persona();
p1.llorar();
var p2 = Object.create(p1);
Persona.prototype.reir = function() { console.log("Estoy riendo"); }
p2.comer = function() { console.log("Estoy comiendo"); }
p2.cantar(); // Del padre
p2.reir(); // Del hijo (utilizando referencia explícita a prototype)
p2.comer(); // Del hijo
JSON
La Notación de Objetos de JavaScript (JSON) es un formato de intercambio de datos.
Con JSON se pueden representar números, booleanos, strings, conjuntos vacíos
(null), vectores y objetos (compuestos de todos los tipos de datos comentados).
Con JSON no se pueden representar -de forma nativa- tipos de datos complejos,
como: funciones, expresiones regulares, fechas, entre otros.
var persona = {
"nombre": "Juan",
edad: 34,
toString: function() {
return "nombre: " + this.nombre +
", edad: " + this.edad + ")";
}
}
DOM
El Modelo de Objetos del Documento (DOM) es una API para
documentos HTML y XML. Provee una representación estructural del
documento, permitiendo modificar su contenido y representación
visual utilizando un lenguaje de scripting, Ej. JavaScript.
La API es definida por la W3C y su especificación puede
conseguirse aquí.
La guía referencial de Mozilla para DOM y JavaScript puede
conseguirse aquí.
DOM
var contenido = document.getElementById("contenido");
var h1 = document.createElement('h1'); // Creando h1
h1.innerHTML = "Hola mundo!!!";
contenido.appendChild(h1);
var tabla = document.createElement("table"); // Creando tabla
var tr = document.createElement("tr");
var td1 = document.createElement("td"); // Creando td1
td1.innerHTML = "Prueba";
tr.appendChild(td1);
// continua...
DOM
var td2 = document.createElement("td"); // Creando td2
var input = document.createElement("input");
input.setAttribute('type', 'text');
input.setAttribute('value', 'Prueba');
td2.appendChild(input);
tr.appendChild(td2);
tabla.appendChild(tr);
contenido.appendChild(tabla); // <--- Añade siempre, no reemplaza!!
// ...
<div id=”contenido”></div>
Eventos
Los eventos pueden ser capturados y manejados en JavaScript a
través de escuchas (listeners).
Hay tres maneras de registrarse como escucha de un evento:
myButton.addEventListener('click',
function() { alert('Hello world');}
);
<button onclick="alert('Hello world!')">
myButton.onclick = function(event){alert('Hello world');};
Los objetos del navegador
Todo navegador debe provee al menos los siguientes objetos
implícitos:
Window. Provee acceso a la ventana del navegador donde está
contenido el documento (document). Su referencia aquí.
Console. Provee acceso a la consola de depuración del navegador.
Su referencia aquí.
Document. Provee acceso al árbol DOM. Su referencia aquí.
Cookies
Una cookie (o galleta informática) es una pequeña información
enviada por un sitio web y almacenada en el navegador del usuario,
de manera que el sitio web puede consultar la actividad previa del
usuario
document.cookie = "name=oeschger";
document.cookie = "favorite_food=tripe";
alert(document.cookie);
// muestra: name=oeschger;favorite_food=tripe
Para reemplazar el valor de una cookie se deben utilizar expresiones
regulares!
Expresiones regulares
Las expresiones regulares son patrones utilizados para emparejar
(match) combinaciones de caracteres dentro de strings.
Los patrones pueden ser utilizados con los métodos exec y text de
RegeExp y match, replace, search y split de String.
La guía de referencia de Mozilla de expresiones regulares puede
conseguirse aquí.
Las expresiones regulares pueden ser creadas de 2 formas:
var re1 = /ab+c/;
var re2 = new RegExp("ab+c");
Expresiones regulares
var myRe1 = /d(b+)d/g;
var myArray1 = myRe1.exec("cdbbdbsbz"); // => ?
var myArray2 = /d(b+)d/g.exec("cdbbdbsbz"); // => ?
var myRe2 = new RegExp("d(b+)d", "g");
var myArray3 = myRe2.exec("cdbbdbsbz"); // => ?
var names = "Harry Trump ;Fred Barney; Helen Rigby”;
var pattern = /s*;s*/;
var nameList = names.split(pattern); // => ?
Expresiones regulares
Las expresiones regulares son patrones utilizados para emparejar
(match) combinaciones de caracteres dentro de strings.
Los patrones pueden ser utilizados con los métodos exec y text de
RegeExp y match, replace, search y split de String.
La guía de referencia de Mozilla de expresiones regulares puede
conseguirse aquí.
Las expresiones regulares pueden ser creadas de 2 formas:
var re1 = /ab+c/;
var re2 = new RegExp("ab+c");
Ajax
Es una técnica de desarrollo web para crear RIA (Rich Internet Applications).
Estas aplicaciones se ejecutan en el cliente, es decir: en el navegador de los
usuarios mientras se mantiene comunicación asíncrona con el servidor.
Ajax es una tecnología asíncrona, los datos adicionales se requieren al
servidor y se cargan en segundo plano sin interferir con la visualización ni el
comportamiento de la página.
Básicamente, es una combinación de las siguientes tecnologías:
XHTML (o HTML)
CSS
DOM (especialmente el objeto XMLHttpRequest).
XML
JavaScript
Un ejemplo sencillo de AJAX sin usar entorno de trabajo aquí.
Ajax

Más contenido relacionado

La actualidad más candente

Guia N2 Proyectos Web Php
Guia N2   Proyectos Web   PhpGuia N2   Proyectos Web   Php
Guia N2 Proyectos Web Php
Jose Ponce
 
Diseño web clase03
Diseño web clase03Diseño web clase03
Diseño web clase03
Janett Julca Flores
 
Comunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSPComunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSPDanii Rodriguez
 
4.Programación con PHP y MySQL
4.Programación con PHP y MySQL4.Programación con PHP y MySQL
4.Programación con PHP y MySQL
Ramiro Estigarribia Canese
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
Juan Belón Pérez
 
Javascript muy basico
Javascript muy basicoJavascript muy basico
Javascript muy basico
Gustavo Salazar Loor
 
PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01
Eddye Arturo Sanchez Castillo
 
Formulario
FormularioFormulario
Formulario
ljds
 
Manual php completo by_ desarrolloweb
Manual php completo by_ desarrollowebManual php completo by_ desarrolloweb
Manual php completo by_ desarrolloweb
Jomar Burgos Palacios
 
3 curso php
3 curso php3 curso php
3 curso php
Jesus Luque Medina
 
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...Abimael Fernandes
 
Guía resumen JavaScript
Guía resumen JavaScriptGuía resumen JavaScript
Guía resumen JavaScript
vinceq
 
Guia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSSGuia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSS
lissette_torrealba
 
1. guia css3
1. guia css31. guia css3
1. guia css3
ljds
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NET
pabloesp
 
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control ToolkitDesarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
pabloesp
 
Introducción a recaptcha 3.0
Introducción a recaptcha 3.0Introducción a recaptcha 3.0
Introducción a recaptcha 3.0
Jesús Ayús
 

La actualidad más candente (20)

Guia N2 Proyectos Web Php
Guia N2   Proyectos Web   PhpGuia N2   Proyectos Web   Php
Guia N2 Proyectos Web Php
 
Diseño web clase03
Diseño web clase03Diseño web clase03
Diseño web clase03
 
Comunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSPComunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSP
 
4.Programación con PHP y MySQL
4.Programación con PHP y MySQL4.Programación con PHP y MySQL
4.Programación con PHP y MySQL
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Javascript muy basico
Javascript muy basicoJavascript muy basico
Javascript muy basico
 
Php1
Php1Php1
Php1
 
PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01
 
JSP
JSPJSP
JSP
 
Formulario
FormularioFormulario
Formulario
 
Manual php completo by_ desarrolloweb
Manual php completo by_ desarrollowebManual php completo by_ desarrolloweb
Manual php completo by_ desarrolloweb
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
3 curso php
3 curso php3 curso php
3 curso php
 
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
 
Guía resumen JavaScript
Guía resumen JavaScriptGuía resumen JavaScript
Guía resumen JavaScript
 
Guia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSSGuia Practica Maquetación HTML5, CSS
Guia Practica Maquetación HTML5, CSS
 
1. guia css3
1. guia css31. guia css3
1. guia css3
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NET
 
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control ToolkitDesarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
 
Introducción a recaptcha 3.0
Introducción a recaptcha 3.0Introducción a recaptcha 3.0
Introducción a recaptcha 3.0
 

Destacado

Subprogramacion
SubprogramacionSubprogramacion
Subprogramacion
DesarrolloWeb.com
 
Análisis y diseño de sistemas
Análisis y diseño de sistemasAnálisis y diseño de sistemas
Análisis y diseño de sistemasUNEFA
 
Estructura interna del cpu
Estructura interna del cpuEstructura interna del cpu
Estructura interna del cpu
edgarRomoGabriel
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivasmarigelcontreras
 
Algoritmos+y+solucion+de+problemas
Algoritmos+y+solucion+de+problemasAlgoritmos+y+solucion+de+problemas
Algoritmos+y+solucion+de+problemas
Américo Royci Mamani Nina
 
Javascript
JavascriptJavascript
Javascript
guest03a6e6
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An Introduction
Manvendra Singh
 
TECNICAS DE NEGOCIACION
TECNICAS DE NEGOCIACIONTECNICAS DE NEGOCIACION
TECNICAS DE NEGOCIACION
hbussenius
 
Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)irvingsalazar2
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltosRoldan El Gato
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujoTete Alar
 

Destacado (12)

Javascript
JavascriptJavascript
Javascript
 
Subprogramacion
SubprogramacionSubprogramacion
Subprogramacion
 
Análisis y diseño de sistemas
Análisis y diseño de sistemasAnálisis y diseño de sistemas
Análisis y diseño de sistemas
 
Estructura interna del cpu
Estructura interna del cpuEstructura interna del cpu
Estructura interna del cpu
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivas
 
Algoritmos+y+solucion+de+problemas
Algoritmos+y+solucion+de+problemasAlgoritmos+y+solucion+de+problemas
Algoritmos+y+solucion+de+problemas
 
Javascript
JavascriptJavascript
Javascript
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An Introduction
 
TECNICAS DE NEGOCIACION
TECNICAS DE NEGOCIACIONTECNICAS DE NEGOCIACION
TECNICAS DE NEGOCIACION
 
Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo
 

Similar a Javascript Básico

¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas
jaespinmora
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
samo509
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
samo509
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
Samuel Sanchez
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchezsamo509
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
Jose Juan R. Zuñiga
 
Introducción Javascript.pdf
Introducción Javascript.pdfIntroducción Javascript.pdf
Introducción Javascript.pdf
rhapetus
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
Mod2ud2 1
Mod2ud2 1Mod2ud2 1
Mod2ud2 1
Juan Garcia
 
Separata java script
Separata java scriptSeparata java script
Separata java script
Carlos Enrique Huamán Solis
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryJavier P.
 
Tema2 3
Tema2 3Tema2 3
javascript.ppt
javascript.pptjavascript.ppt
javascript.ppt
PedroAlonzo20
 
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Juan Manuel
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
Javier P.
 
(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery
Víctor Manuel Rivas Santos
 
0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf
miguelalemangonzales1
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
Javier P.
 

Similar a Javascript Básico (20)

¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
Clase09 java script
Clase09 java scriptClase09 java script
Clase09 java script
 
Introducción Javascript.pdf
Introducción Javascript.pdfIntroducción Javascript.pdf
Introducción Javascript.pdf
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Mod2ud2 1
Mod2ud2 1Mod2ud2 1
Mod2ud2 1
 
Separata java script
Separata java scriptSeparata java script
Separata java script
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 
Tema2 3
Tema2 3Tema2 3
Tema2 3
 
javascript.ppt
javascript.pptjavascript.ppt
javascript.ppt
 
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery
 
32773 php-basico
32773 php-basico32773 php-basico
32773 php-basico
 
0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 

Más de camposer

Curso de Ajax
Curso de AjaxCurso de Ajax
Curso de Ajax
camposer
 
Hadoop
HadoopHadoop
Hadoop
camposer
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
camposer
 
Fundamentos de SQL
Fundamentos de SQLFundamentos de SQL
Fundamentos de SQL
camposer
 
MongoDB
MongoDBMongoDB
MongoDB
camposer
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
camposer
 
Linear Regression Parameters
Linear Regression ParametersLinear Regression Parameters
Linear Regression Parameterscamposer
 
Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)
camposer
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
camposer
 
Extracción de Requerimientos
Extracción de RequerimientosExtracción de Requerimientos
Extracción de Requerimientos
camposer
 

Más de camposer (10)

Curso de Ajax
Curso de AjaxCurso de Ajax
Curso de Ajax
 
Hadoop
HadoopHadoop
Hadoop
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
 
Fundamentos de SQL
Fundamentos de SQLFundamentos de SQL
Fundamentos de SQL
 
MongoDB
MongoDBMongoDB
MongoDB
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
 
Linear Regression Parameters
Linear Regression ParametersLinear Regression Parameters
Linear Regression Parameters
 
Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
 
Extracción de Requerimientos
Extracción de RequerimientosExtracción de Requerimientos
Extracción de Requerimientos
 

Último

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
KatiuskaDominguez2
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
AlanL15
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
MODULOS INTEGRADOS.docx.....................................
MODULOS INTEGRADOS.docx.....................................MODULOS INTEGRADOS.docx.....................................
MODULOS INTEGRADOS.docx.....................................
Yisel56
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 

Último (7)

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
 
Arquitectura de Sistema de Reservaciones
Arquitectura de Sistema de ReservacionesArquitectura de Sistema de Reservaciones
Arquitectura de Sistema de Reservaciones
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
MODULOS INTEGRADOS.docx.....................................
MODULOS INTEGRADOS.docx.....................................MODULOS INTEGRADOS.docx.....................................
MODULOS INTEGRADOS.docx.....................................
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 

Javascript Básico

  • 2. Índice Introducción Variables, funciones Operadores y funciones matemáticas Estructuras de control de flujo Matrices de JavaScript Manejo de cadenas de texto Trabajando con fechas y horas Programación Orientada a Objetos con JavaScript Los eventos Los objetos del navegador Formularios y controles HTML intrínsecos
  • 3. Índice Almacenando información del usuario: las cookies Expresiones regulares Introducción a AJAX
  • 4. Introducción JavaScript (abreviado comúnmente "JS") es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). JavaScript está compuesto de diferentes elementos, los más destacados: el lenguaje per se (ECMAScript) y DOM.
  • 5. Introducción ECMAScript define: La sintaxis del lenguaje. Manejo de errores. Tipos de datos. Objetos globales. Mecanismo de herencia basada en prototipos. Objetos y funciones predefinid@s. Soporte de modo estricto. DOM define la estructura del documento, arborescente, y cómo interactuar con ésta.
  • 6. Valores Tipo Ejemplos Numérico 42, 3.141516 Lógico true / false Strings “cadena” Vacío null undefined Para variables sin inicializar o funciones que no retornan parámetros
  • 7. Variables y constantes Las variables referencian valores en la aplicación. El nombre de una variable puede comenzar con una letra, guión bajo o símbolo de dólar y seguir con letras o números. Son diferenciadas mayúsculas de minúsculas. Si una variable no es definida dentro de una función se reconoce como de ámbito global. var a = 2; También se pueden definir constantes const prefix = '212';
  • 8. Arrays var array = new Array(); var mixto = [ 1, 2, 3, “hola” ]; // Operando con el array mixto console.log(mixto); // => 1, 2, 3, “hola” mixto[0] = 33; // primera posición mixto[3] = 2000; // primera posición mixto[5] = 0; // primera posición console.log(mixto); // => 33, 2, 3, 2000, undefined, 0 // Operando con el array array array[array.length] = “uno”; console.log(array); // => “uno”
  • 9. Arrays var clasico = new Array(); clasico[0] = 0; clasico[1] = 1; clasico[2] = "hola"; clasico.push("nuevo"); console.log(clasico.pop());
  • 10. Funciones Las funciones son un tipo especial de variable. Pueden retornar o no un valor y en su firma sólo deben especificar un nombre y sus parámetros de entrada. Todos los parámetros son pasados por copia, excepto los objetos, que son referencias. function imprimir(mensaje) { console.log(mensaje); } function sumar(a, b) { return a + b; } var multiplicar = function(a, b) { return a * b; }
  • 11. Estructuras de control El switch y do-while funcionan exactamente igual que en otros lenguajes, por ejemplo: Java. Luego, JavaScript provee una estructura for-each diferente: for (var i in array) { console.log(array[i]); }
  • 12. Matrices Las matrices son definidas dinamicamente. Al igual que en Java, se pueden utilizar arrays bidimensionales irregulares. var matriz = [ [1, 2], [3, 4], [5, 6] ]; console.log(matriz[0][1]); // => 2
  • 13. Cadenas JavaScript diferencia entre los strings de tipo primitivo y los de tipo objeto. var s_prim = "foo"; var s_obj = new String(s_prim); console.log(typeof s_prim); // "string" console.log(typeof s_obj); // "object" /***********Diferencias con eval ****************/ s1 = "2 + 2"; s2 = new String("2 + 2"); console.log(eval(s1)); // => 4 console.log(eval(s2)); // => “2 + 2”
  • 14. Fechas JavaScript provee la clase Date para manipular fechas y horas. La referencia completa aquí. var today = new Date(); var birthday = new Date("December 17, 1995 03:24:00"); var birthday = new Date(1995,11,17); var birthday = new Date(1995,11,17,3,24,0); var start = new Date(); doSomethingForALongTime(); var end = new Date(); // tiempo en milisegundos var elapsed = end.getTime() - start.getTime();
  • 15. Programación Orientada a Objetos // No existe la sobrecarga en javascript!! function Producto(_nombre) { var nombre = _nombre; this.setNombre = function(_n) { nombre = _n; } this.getNombre = function() { return nombre; } this.toString = function() { return "(nombre: " + this.getNombre() + ")"; } } var p = new Producto("Cámaras"); console.log(p); // => "(nombre: Cámaras)" console.log(p.getNombre()); // => "(nombre: Cámaras)" console.log(p.nombre); // => falla!
  • 16. Prototipos function Persona() { this.cantar = function() { console.log("Estoy cantando"); } this.llorar = function() { console.log("Estoy llorando"); } } var p1 = new Persona(); p1.llorar(); var p2 = Object.create(p1); Persona.prototype.reir = function() { console.log("Estoy riendo"); } p2.comer = function() { console.log("Estoy comiendo"); } p2.cantar(); // Del padre p2.reir(); // Del hijo (utilizando referencia explícita a prototype) p2.comer(); // Del hijo
  • 17. JSON La Notación de Objetos de JavaScript (JSON) es un formato de intercambio de datos. Con JSON se pueden representar números, booleanos, strings, conjuntos vacíos (null), vectores y objetos (compuestos de todos los tipos de datos comentados). Con JSON no se pueden representar -de forma nativa- tipos de datos complejos, como: funciones, expresiones regulares, fechas, entre otros. var persona = { "nombre": "Juan", edad: 34, toString: function() { return "nombre: " + this.nombre + ", edad: " + this.edad + ")"; } }
  • 18. DOM El Modelo de Objetos del Documento (DOM) es una API para documentos HTML y XML. Provee una representación estructural del documento, permitiendo modificar su contenido y representación visual utilizando un lenguaje de scripting, Ej. JavaScript. La API es definida por la W3C y su especificación puede conseguirse aquí. La guía referencial de Mozilla para DOM y JavaScript puede conseguirse aquí.
  • 19. DOM var contenido = document.getElementById("contenido"); var h1 = document.createElement('h1'); // Creando h1 h1.innerHTML = "Hola mundo!!!"; contenido.appendChild(h1); var tabla = document.createElement("table"); // Creando tabla var tr = document.createElement("tr"); var td1 = document.createElement("td"); // Creando td1 td1.innerHTML = "Prueba"; tr.appendChild(td1); // continua...
  • 20. DOM var td2 = document.createElement("td"); // Creando td2 var input = document.createElement("input"); input.setAttribute('type', 'text'); input.setAttribute('value', 'Prueba'); td2.appendChild(input); tr.appendChild(td2); tabla.appendChild(tr); contenido.appendChild(tabla); // <--- Añade siempre, no reemplaza!! // ... <div id=”contenido”></div>
  • 21. Eventos Los eventos pueden ser capturados y manejados en JavaScript a través de escuchas (listeners). Hay tres maneras de registrarse como escucha de un evento: myButton.addEventListener('click', function() { alert('Hello world');} ); <button onclick="alert('Hello world!')"> myButton.onclick = function(event){alert('Hello world');};
  • 22. Los objetos del navegador Todo navegador debe provee al menos los siguientes objetos implícitos: Window. Provee acceso a la ventana del navegador donde está contenido el documento (document). Su referencia aquí. Console. Provee acceso a la consola de depuración del navegador. Su referencia aquí. Document. Provee acceso al árbol DOM. Su referencia aquí.
  • 23. Cookies Una cookie (o galleta informática) es una pequeña información enviada por un sitio web y almacenada en el navegador del usuario, de manera que el sitio web puede consultar la actividad previa del usuario document.cookie = "name=oeschger"; document.cookie = "favorite_food=tripe"; alert(document.cookie); // muestra: name=oeschger;favorite_food=tripe Para reemplazar el valor de una cookie se deben utilizar expresiones regulares!
  • 24. Expresiones regulares Las expresiones regulares son patrones utilizados para emparejar (match) combinaciones de caracteres dentro de strings. Los patrones pueden ser utilizados con los métodos exec y text de RegeExp y match, replace, search y split de String. La guía de referencia de Mozilla de expresiones regulares puede conseguirse aquí. Las expresiones regulares pueden ser creadas de 2 formas: var re1 = /ab+c/; var re2 = new RegExp("ab+c");
  • 25. Expresiones regulares var myRe1 = /d(b+)d/g; var myArray1 = myRe1.exec("cdbbdbsbz"); // => ? var myArray2 = /d(b+)d/g.exec("cdbbdbsbz"); // => ? var myRe2 = new RegExp("d(b+)d", "g"); var myArray3 = myRe2.exec("cdbbdbsbz"); // => ? var names = "Harry Trump ;Fred Barney; Helen Rigby”; var pattern = /s*;s*/; var nameList = names.split(pattern); // => ?
  • 26. Expresiones regulares Las expresiones regulares son patrones utilizados para emparejar (match) combinaciones de caracteres dentro de strings. Los patrones pueden ser utilizados con los métodos exec y text de RegeExp y match, replace, search y split de String. La guía de referencia de Mozilla de expresiones regulares puede conseguirse aquí. Las expresiones regulares pueden ser creadas de 2 formas: var re1 = /ab+c/; var re2 = new RegExp("ab+c");
  • 27. Ajax Es una técnica de desarrollo web para crear RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir: en el navegador de los usuarios mientras se mantiene comunicación asíncrona con el servidor. Ajax es una tecnología asíncrona, los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. Básicamente, es una combinación de las siguientes tecnologías: XHTML (o HTML) CSS DOM (especialmente el objeto XMLHttpRequest). XML JavaScript Un ejemplo sencillo de AJAX sin usar entorno de trabajo aquí.
  • 28. Ajax