SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Electiva II
Clase 5
Funciones en JavaScript
Ing. José Ricardo Tillero UPTAEB
Funciones en JavaScript
Introducción
 Las funciones nos permiten agrupar varias líneas de código bajo un nombre. De esta forma podemos
reutilizar este código, invocando el nombre de la función.
 Las partes de una función:
 La sentencia function.
 El nombre de la función (sum).
 Parámetros (argumentos) que espera la función (a y b) Una función puede aceptar cero más
argumentos separados por comas.
 Un bloque de código, también llamado el cuerpo de la función.
 La sentencia return.
 Una función siempre devuelve un valor.
 Si no devuelve explícitamente un valor, implícitamente devuelve el valor undefined.
 Una función solo puede devolver un valor.
 Si se necesita devolver mas de un valor, se puede devolver un array o un objeto con esos valores.
 Para llamar a una función tan solo tenemos que usar su nombre seguido de algunos parámetros (o
ninguno) entre paréntesis
Funciones en JavaScript
Ejemplo
 Ejemplo de función, creada y ejecutada desde la Consola del navegador Web.
> function sum(a, b) {
var c = a + b;
return c;
}
> var result = sum(1, 2);
result;
< 3
Funciones en JavaScript
Parametros
 Una función puede no requerir parámetros, pero si los requiere y no se les pasa a la función, JavaScript
les asignará el valor undefined.
 Si la función recibe mas parámetros de los esperados, simplemente los ignorará.
 Dentro de cada función tenemos disponible el objeto (pseudo-array) arguments que contiene los
argumentos pasados a la función.
> function sumOnSteroids() {
var i, res = 0;
var number_of_params = arguments.length;
for (i = 0; i < number_of_params; i++) {
res += arguments[i];
}
return res;
}
Funciones en JavaScript
Funciones pre-definidas
 Hay una serie de funciones que están directamente definidas dentro del motor de
JavaScript.
 Estas funciones pre-definidas son:
 parseInt()
 parseFloat()
 isNaN()
 isFinite()
 encodeURI()
 decodeURI()
 encodeURIComponent()
 decodeURIComponent()
 eval()
Funciones en JavaScript
parseInt()
 parseInt() toma un valor e intenta transformarlo en número entero. Si falla devuelve NaN.
 parseInt() admite un segundo parámetro opcional que indica la base del numero que se le está pasando
(decimal, hexadecimal, binario, etc…).
 Ejemplos por Consola:
> parseInt('123')
< 123
> parseInt('abc123')
< NaN
> parseInt('1abc23')
< 1
> parseInt('123abc')
< 123
Funciones en JavaScript
parseInt()
 Se recomienda especificar siempre la base (10 normalmente) para evitar problemas de interpretaciones.
 Ejemplos por Consola:
> parseInt(" 0xF", 16);
< 15
> parseInt(" F", 16);
< 15
> parseInt("17", 8);
< 15
> parseInt(021, 8);
< 15
> parseInt("015", 10);
< 15
> parseInt(15.99, 10);
< 15
> parseInt("FXX123", 16);
< 15
> parseInt("1111", 2);
< 15
> parseInt("15*3", 10);
< 15
> parseInt("15e2", 10);
< 15
> parseInt("15px", 10);
< 15
> parseInt("12", 13);
< 15
Funciones en JavaScript
parseFloat()
 parseFloat() toma un valor e intenta transformarlo en número de coma
flotante (con decimales).
 Ejemplos por Consola:
> parseFloat('123')
< 123
> parseFloat('1.23')
< 1.23
> parseFloat('1.23abc.00')
< 1.23
> parseFloat('a.bc1.23')
< NaN
Funciones en JavaScript
isNan()
 isNan() comprueba si el valor que se le pasa es un numero
válido (devuelve true en caso de que no lo sea).
 Ejemplos por Consola:
> isNaN(NaN)
< true
> isNaN(123)
< false
> isNaN(1.23)
< false
> isNaN(parseInt('abc123'))
< true
Funciones en JavaScript
isFinite()
 isFinite() comprueba si el valor que se le pasa no es ni Infinity ni NaN.
 Ejemplos por Consola:
> isFinite(Infinity)
< false
> isFinite(-Infinity)
< false
> isFinite(12)
< true
> isFinite(1e308)
< true
> isFinite(1e309)
< false
Funciones en JavaScript
encodeURI() y decodeURI()
 encodeURI() Nos permite ‘escapar’ (codificar) una URL reemplazando
algunos caracteres por su correspondiente secuencia de escape UTF-8.
encodeURI() nos devuelve una URL usable (solo codifica algunos caracteres).
 Ejemplo por Consola:
> var url = 'http://www.packtpub.com/scr ipt.php?q=this and that';
> encodeURI(url);
< http://www.packtpub.com/scr%20ipt.php?q=this%20and%20that
 decodeURI() Nos permite ‘decodificar’ un string codificado por encodeURI().
Funciones en JavaScript
encodeURIComponent() y decodeURIComponent()
 encodeURIComponent() y decodeURIComponent() Lo mismo que
encodeURI()‘ pero esta función codifica (decodifica) TODOS los caracteres
transformables.
 Ejemplo por Consola:
> encodeURIComponent(url);
< "http%3A%2F%2Fwww.packtpub.com%2Fscr%20ipt.php%3Fq%3Dthis%20and%20that"
Funciones en JavaScript
eval()
 eval() toma una cadena de texto y la ejecuta como código JavaScript.
 eval() no debe utilizarse básicamente por 2 motivos:
 Rendimiento: Es mucho más lento evaluar código “en vivo” que tenerlo
directamente en el script.
 Seguridad: Teniendo en cuenta que ejecuta todo lo que se le pase puede
ser un agujero de seguridad.
 Ejemplo por Consola:
> eval('var ii = 2;')
> ii
< 2
Funciones en JavaScript
alert()
 alert() Nos muestra una ventana con un string.
 alert() no es parte del core JS pero está disponible en todos los navegadores.
 alert() para el código hasta que se acepte el mensaje.
 Ejemplo por Consola:
> alert(“hola soy un alerta”);
Funciones en JavaScript
Ámbito (Scope) de las Funciones
 En JavaScript las variables se definen en el ámbito de una función (y no
en el ámbito de un bloque como ocurre en otros lenguajes):
 Las variables globales son aquellas que se definen fuera de cualquier
función.
 Las variables locales son aquellas que se definen dentro de una
función.
Funciones en JavaScript
Funciones Callback
 Las funciones en JavaScript son datos, lo que significa que podemos asignarlas a
variables igual que cualquier otro valor (y manejarlas como variables):
> function f(){ return 1; }
> var f = function(){ return 1; }
 Las funciones son datos, pero un tipo especial de datos (typeof ‘function’) ya que:
• Contienen código.
• Podemos ejecutarlas.
 Ejemplo por Consola:
> var sum = function(a, b) { return a + b; }
> var add = sum;
> delete sum
< true
> typeof sum;
< "undefined"
> typeof add;
< "function"
> add(1, 2);
< 3
Funciones en JavaScript
Funciones Callback
 Las funciones anónimas son aquellas que no tienen nombre y se pueden utilizar
para:
 Pasar esa función como argumento de una función.
 Definir una función y ejecutarla inmediatamente.
> function(a){ return a; }
 Cuando pasamos una función A como argumento de otra función B y B ejecuta
A, decimos que A es una función callback.
 Ejemplo por Consola:
> function invoke_and_add(a, b){ return a() + b(); }
> function one() { return 1; }
> function two() { return 2; }
> invoke_and_add(one, two);
< 3
> invoke_and_add(one, function(){return 7;})
< 8
Funciones en JavaScript
Closures
 Si definimos una función n() dentro de f() , n() tendrá acceso tanto a las variables de su scope (ámbito)
como las del scope de su padre. Esto es lo que se llama scope chain (encadenamiento de ámbitos).
> var a = 1;
> function f(){
var b = 1;
function n() {
var c = 3;
}
}
 Las funciones tienen lo que se llama lexical scope (ámbito léxico) lo que significa que crean su entorno
(scope, a qué variables tienen acceso) cuando son definidas no cuando son ejecutadas.
> function f1(){ var a = 1; return f2(); }
> function f2(){ return a; }
> f1();
< a is not defined
> var a = 5;
> f1();
< 5
> a = 55;
> f1();
< 55
> delete a;
< true
> f1();
< a is not defined
> var a = 123;
> function f() {
> alert(a);
> var a = 1;
> alert(a);
> }
> f();
Funciones en JavaScript
Closures
 Un closure se crea cuando una función mantiene un enlace con el ámbito (scope) de la función padre
incluso después de que la función padre haya terminado.
Ejemplo 1 Ejemplo 2 Ejemplo 3
> function f(){
var b = "b";
return function(){
return b;
}
}
> b
< b is not defined
> var n = f();
> n();
< "b"
> var n;
> function f(){
var b = "b";
n = function(){
return b;
}
}
> f();
> n();
> function f(arg) {
var n = function(){
return arg;
};
arg++;
return n;
};
> var m = f(123);
> m();

Weitere ähnliche Inhalte

Was ist angesagt?

4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuarioLaura Folgado Galache
 
Charla congreso web introducción programación funcional en JavaScript
Charla congreso web introducción programación funcional en JavaScriptCharla congreso web introducción programación funcional en JavaScript
Charla congreso web introducción programación funcional en JavaScriptRicardo Pallás Román
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsVisual Engineering
 
Programa Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viverosPrograma Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viverosjubacalo
 
SCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner ClassesSCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner Classesflekoso
 
SCJP, Clase 7: Generics
SCJP, Clase 7: GenericsSCJP, Clase 7: Generics
SCJP, Clase 7: Genericsflekoso
 
Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc X
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosWilliam Diaz S
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignacionesflekoso
 
SCJP, Clase 6: Collections
SCJP, Clase 6: CollectionsSCJP, Clase 6: Collections
SCJP, Clase 6: Collectionsflekoso
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncronaLaura Folgado Galache
 
Clase3 asignaciones
Clase3 asignacionesClase3 asignaciones
Clase3 asignacionesjorg_marq
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANSWilliam Diaz S
 
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...David Zapateria Besteiro
 
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...David Zapateria Besteiro
 
6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)Laura Folgado Galache
 

Was ist angesagt? (20)

4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario
 
Charla congreso web introducción programación funcional en JavaScript
Charla congreso web introducción programación funcional en JavaScriptCharla congreso web introducción programación funcional en JavaScript
Charla congreso web introducción programación funcional en JavaScript
 
Codigo
CodigoCodigo
Codigo
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operators
 
Programa Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viverosPrograma Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viveros
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
SCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner ClassesSCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner Classes
 
SCJP, Clase 7: Generics
SCJP, Clase 7: GenericsSCJP, Clase 7: Generics
SCJP, Clase 7: Generics
 
Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a Objetos
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignaciones
 
Semana 1 Estructuras de Control en Java
Semana 1   Estructuras de Control en JavaSemana 1   Estructuras de Control en Java
Semana 1 Estructuras de Control en Java
 
SCJP, Clase 6: Collections
SCJP, Clase 6: CollectionsSCJP, Clase 6: Collections
SCJP, Clase 6: Collections
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona
 
Clase3 asignaciones
Clase3 asignacionesClase3 asignaciones
Clase3 asignaciones
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
 
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
 
6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)
 
Guia poo
Guia pooGuia poo
Guia poo
 

Ähnlich wie Clase 5 funciones en javaScript

Ähnlich wie Clase 5 funciones en javaScript (20)

JavaScript funciones
JavaScript funcionesJavaScript funciones
JavaScript funciones
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
 
Descubriendo scala
Descubriendo scalaDescubriendo scala
Descubriendo scala
 
Unidad educativa
Unidad educativaUnidad educativa
Unidad educativa
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
Separata java script
Separata java scriptSeparata java script
Separata java script
 
Kit de supervivencia para Java 8 : como prepararse para Java 9
Kit de supervivencia para Java 8 :  como prepararse para Java 9Kit de supervivencia para Java 8 :  como prepararse para Java 9
Kit de supervivencia para Java 8 : como prepararse para Java 9
 
JavaScript no es Vietnam
JavaScript no es VietnamJavaScript no es Vietnam
JavaScript no es Vietnam
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Php funciones en detalle
Php   funciones en detallePhp   funciones en detalle
Php funciones en detalle
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 
JavaScript.pptx
JavaScript.pptxJavaScript.pptx
JavaScript.pptx
 
Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadores
 
Java 8
Java 8Java 8
Java 8
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
P_UNIDAD 4 FUNCIONES.pptx
P_UNIDAD 4 FUNCIONES.pptxP_UNIDAD 4 FUNCIONES.pptx
P_UNIDAD 4 FUNCIONES.pptx
 
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptxConceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
 
Funciones
FuncionesFunciones
Funciones
 

Mehr von José Ricardo Tillero Giménez

Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRPGuía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRPJosé Ricardo Tillero Giménez
 

Mehr von José Ricardo Tillero Giménez (20)

PLAN DE EVALUACIÓN REDES AVANZADAS II-2021
PLAN DE EVALUACIÓN REDES AVANZADAS II-2021PLAN DE EVALUACIÓN REDES AVANZADAS II-2021
PLAN DE EVALUACIÓN REDES AVANZADAS II-2021
 
Guía Ejercicios SQL
Guía Ejercicios SQLGuía Ejercicios SQL
Guía Ejercicios SQL
 
Guía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de DatosGuía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de Datos
 
Guía 1 Ejercicios MR
Guía 1 Ejercicios MRGuía 1 Ejercicios MR
Guía 1 Ejercicios MR
 
Guía 2 Ejercicios de Normalización de Base de Datos
Guía 2 Ejercicios de Normalización de Base de DatosGuía 2 Ejercicios de Normalización de Base de Datos
Guía 2 Ejercicios de Normalización de Base de Datos
 
Guía 3 Ejercicios MER Extendido
Guía 3 Ejercicios MER ExtendidoGuía 3 Ejercicios MER Extendido
Guía 3 Ejercicios MER Extendido
 
Guía 2 Ejercicios MER
Guía 2 Ejercicios MERGuía 2 Ejercicios MER
Guía 2 Ejercicios MER
 
Guía 1 Ejercicios MER
Guía 1 Ejercicios MERGuía 1 Ejercicios MER
Guía 1 Ejercicios MER
 
Plan de evaluación BD2021
Plan de evaluación BD2021Plan de evaluación BD2021
Plan de evaluación BD2021
 
Perfil Docente y Asesoría
Perfil Docente y AsesoríaPerfil Docente y Asesoría
Perfil Docente y Asesoría
 
Planificación BD2021
Planificación BD2021Planificación BD2021
Planificación BD2021
 
UNIDAD 1. El mundo de las Bases de Datos y los SMBD
UNIDAD 1. El mundo de las Bases de Datos y los SMBDUNIDAD 1. El mundo de las Bases de Datos y los SMBD
UNIDAD 1. El mundo de las Bases de Datos y los SMBD
 
NOTAS FINALES DE REDES AVANZADAS IIN4301
NOTAS FINALES DE REDES AVANZADAS IIN4301NOTAS FINALES DE REDES AVANZADAS IIN4301
NOTAS FINALES DE REDES AVANZADAS IIN4301
 
NOTAS FINALES ELECTIVA II IN2102
NOTAS FINALES ELECTIVA II IN2102NOTAS FINALES ELECTIVA II IN2102
NOTAS FINALES ELECTIVA II IN2102
 
NOTAS FINALES ELECTIVA II IN2101
NOTAS FINALES ELECTIVA II IN2101NOTAS FINALES ELECTIVA II IN2101
NOTAS FINALES ELECTIVA II IN2101
 
Notas definitivas per base de datos
Notas definitivas per base de datosNotas definitivas per base de datos
Notas definitivas per base de datos
 
Clase 6 VLAN
Clase 6 VLANClase 6 VLAN
Clase 6 VLAN
 
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRPGuía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
 
Guía CISCO de redistribución de protocolos de ruteo
Guía CISCO de redistribución de protocolos de ruteoGuía CISCO de redistribución de protocolos de ruteo
Guía CISCO de redistribución de protocolos de ruteo
 
Manual Basico de jQuery
Manual Basico de jQueryManual Basico de jQuery
Manual Basico de jQuery
 

Kürzlich hochgeladen

LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 

Kürzlich hochgeladen (20)

LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 

Clase 5 funciones en javaScript

  • 1. Electiva II Clase 5 Funciones en JavaScript Ing. José Ricardo Tillero UPTAEB
  • 2. Funciones en JavaScript Introducción  Las funciones nos permiten agrupar varias líneas de código bajo un nombre. De esta forma podemos reutilizar este código, invocando el nombre de la función.  Las partes de una función:  La sentencia function.  El nombre de la función (sum).  Parámetros (argumentos) que espera la función (a y b) Una función puede aceptar cero más argumentos separados por comas.  Un bloque de código, también llamado el cuerpo de la función.  La sentencia return.  Una función siempre devuelve un valor.  Si no devuelve explícitamente un valor, implícitamente devuelve el valor undefined.  Una función solo puede devolver un valor.  Si se necesita devolver mas de un valor, se puede devolver un array o un objeto con esos valores.  Para llamar a una función tan solo tenemos que usar su nombre seguido de algunos parámetros (o ninguno) entre paréntesis
  • 3. Funciones en JavaScript Ejemplo  Ejemplo de función, creada y ejecutada desde la Consola del navegador Web. > function sum(a, b) { var c = a + b; return c; } > var result = sum(1, 2); result; < 3
  • 4. Funciones en JavaScript Parametros  Una función puede no requerir parámetros, pero si los requiere y no se les pasa a la función, JavaScript les asignará el valor undefined.  Si la función recibe mas parámetros de los esperados, simplemente los ignorará.  Dentro de cada función tenemos disponible el objeto (pseudo-array) arguments que contiene los argumentos pasados a la función. > function sumOnSteroids() { var i, res = 0; var number_of_params = arguments.length; for (i = 0; i < number_of_params; i++) { res += arguments[i]; } return res; }
  • 5. Funciones en JavaScript Funciones pre-definidas  Hay una serie de funciones que están directamente definidas dentro del motor de JavaScript.  Estas funciones pre-definidas son:  parseInt()  parseFloat()  isNaN()  isFinite()  encodeURI()  decodeURI()  encodeURIComponent()  decodeURIComponent()  eval()
  • 6. Funciones en JavaScript parseInt()  parseInt() toma un valor e intenta transformarlo en número entero. Si falla devuelve NaN.  parseInt() admite un segundo parámetro opcional que indica la base del numero que se le está pasando (decimal, hexadecimal, binario, etc…).  Ejemplos por Consola: > parseInt('123') < 123 > parseInt('abc123') < NaN > parseInt('1abc23') < 1 > parseInt('123abc') < 123
  • 7. Funciones en JavaScript parseInt()  Se recomienda especificar siempre la base (10 normalmente) para evitar problemas de interpretaciones.  Ejemplos por Consola: > parseInt(" 0xF", 16); < 15 > parseInt(" F", 16); < 15 > parseInt("17", 8); < 15 > parseInt(021, 8); < 15 > parseInt("015", 10); < 15 > parseInt(15.99, 10); < 15 > parseInt("FXX123", 16); < 15 > parseInt("1111", 2); < 15 > parseInt("15*3", 10); < 15 > parseInt("15e2", 10); < 15 > parseInt("15px", 10); < 15 > parseInt("12", 13); < 15
  • 8. Funciones en JavaScript parseFloat()  parseFloat() toma un valor e intenta transformarlo en número de coma flotante (con decimales).  Ejemplos por Consola: > parseFloat('123') < 123 > parseFloat('1.23') < 1.23 > parseFloat('1.23abc.00') < 1.23 > parseFloat('a.bc1.23') < NaN
  • 9. Funciones en JavaScript isNan()  isNan() comprueba si el valor que se le pasa es un numero válido (devuelve true en caso de que no lo sea).  Ejemplos por Consola: > isNaN(NaN) < true > isNaN(123) < false > isNaN(1.23) < false > isNaN(parseInt('abc123')) < true
  • 10. Funciones en JavaScript isFinite()  isFinite() comprueba si el valor que se le pasa no es ni Infinity ni NaN.  Ejemplos por Consola: > isFinite(Infinity) < false > isFinite(-Infinity) < false > isFinite(12) < true > isFinite(1e308) < true > isFinite(1e309) < false
  • 11. Funciones en JavaScript encodeURI() y decodeURI()  encodeURI() Nos permite ‘escapar’ (codificar) una URL reemplazando algunos caracteres por su correspondiente secuencia de escape UTF-8. encodeURI() nos devuelve una URL usable (solo codifica algunos caracteres).  Ejemplo por Consola: > var url = 'http://www.packtpub.com/scr ipt.php?q=this and that'; > encodeURI(url); < http://www.packtpub.com/scr%20ipt.php?q=this%20and%20that  decodeURI() Nos permite ‘decodificar’ un string codificado por encodeURI().
  • 12. Funciones en JavaScript encodeURIComponent() y decodeURIComponent()  encodeURIComponent() y decodeURIComponent() Lo mismo que encodeURI()‘ pero esta función codifica (decodifica) TODOS los caracteres transformables.  Ejemplo por Consola: > encodeURIComponent(url); < "http%3A%2F%2Fwww.packtpub.com%2Fscr%20ipt.php%3Fq%3Dthis%20and%20that"
  • 13. Funciones en JavaScript eval()  eval() toma una cadena de texto y la ejecuta como código JavaScript.  eval() no debe utilizarse básicamente por 2 motivos:  Rendimiento: Es mucho más lento evaluar código “en vivo” que tenerlo directamente en el script.  Seguridad: Teniendo en cuenta que ejecuta todo lo que se le pase puede ser un agujero de seguridad.  Ejemplo por Consola: > eval('var ii = 2;') > ii < 2
  • 14. Funciones en JavaScript alert()  alert() Nos muestra una ventana con un string.  alert() no es parte del core JS pero está disponible en todos los navegadores.  alert() para el código hasta que se acepte el mensaje.  Ejemplo por Consola: > alert(“hola soy un alerta”);
  • 15. Funciones en JavaScript Ámbito (Scope) de las Funciones  En JavaScript las variables se definen en el ámbito de una función (y no en el ámbito de un bloque como ocurre en otros lenguajes):  Las variables globales son aquellas que se definen fuera de cualquier función.  Las variables locales son aquellas que se definen dentro de una función.
  • 16. Funciones en JavaScript Funciones Callback  Las funciones en JavaScript son datos, lo que significa que podemos asignarlas a variables igual que cualquier otro valor (y manejarlas como variables): > function f(){ return 1; } > var f = function(){ return 1; }  Las funciones son datos, pero un tipo especial de datos (typeof ‘function’) ya que: • Contienen código. • Podemos ejecutarlas.  Ejemplo por Consola: > var sum = function(a, b) { return a + b; } > var add = sum; > delete sum < true > typeof sum; < "undefined" > typeof add; < "function" > add(1, 2); < 3
  • 17. Funciones en JavaScript Funciones Callback  Las funciones anónimas son aquellas que no tienen nombre y se pueden utilizar para:  Pasar esa función como argumento de una función.  Definir una función y ejecutarla inmediatamente. > function(a){ return a; }  Cuando pasamos una función A como argumento de otra función B y B ejecuta A, decimos que A es una función callback.  Ejemplo por Consola: > function invoke_and_add(a, b){ return a() + b(); } > function one() { return 1; } > function two() { return 2; } > invoke_and_add(one, two); < 3 > invoke_and_add(one, function(){return 7;}) < 8
  • 18. Funciones en JavaScript Closures  Si definimos una función n() dentro de f() , n() tendrá acceso tanto a las variables de su scope (ámbito) como las del scope de su padre. Esto es lo que se llama scope chain (encadenamiento de ámbitos). > var a = 1; > function f(){ var b = 1; function n() { var c = 3; } }  Las funciones tienen lo que se llama lexical scope (ámbito léxico) lo que significa que crean su entorno (scope, a qué variables tienen acceso) cuando son definidas no cuando son ejecutadas. > function f1(){ var a = 1; return f2(); } > function f2(){ return a; } > f1(); < a is not defined > var a = 5; > f1(); < 5 > a = 55; > f1(); < 55 > delete a; < true > f1(); < a is not defined > var a = 123; > function f() { > alert(a); > var a = 1; > alert(a); > } > f();
  • 19. Funciones en JavaScript Closures  Un closure se crea cuando una función mantiene un enlace con el ámbito (scope) de la función padre incluso después de que la función padre haya terminado. Ejemplo 1 Ejemplo 2 Ejemplo 3 > function f(){ var b = "b"; return function(){ return b; } } > b < b is not defined > var n = f(); > n(); < "b" > var n; > function f(){ var b = "b"; n = function(){ return b; } } > f(); > n(); > function f(arg) { var n = function(){ return arg; }; arg++; return n; }; > var m = f(123); > m();