SlideShare una empresa de Scribd logo
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();

Más contenido relacionado

La actualidad más candente

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
Laura 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 JavaScript
Ricardo Pallás Román
 
Codigo
CodigoCodigo
Codigo
Deynna Lopez
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operators
Visual 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 viveros
jubacalo
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
Aurelio Martín Obando Távara
 
SCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner ClassesSCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner Classes
flekoso
 
SCJP, Clase 7: Generics
SCJP, Clase 7: GenericsSCJP, Clase 7: Generics
SCJP, Clase 7: Generics
flekoso
 
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 Objetos
William Diaz S
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignaciones
flekoso
 
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
Richard Eliseo Mendoza Gafaro
 
SCJP, Clase 6: Collections
SCJP, Clase 6: CollectionsSCJP, Clase 6: Collections
SCJP, Clase 6: Collections
flekoso
 
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
Laura Folgado Galache
 
Clase3 asignaciones
Clase3 asignacionesClase3 asignaciones
Clase3 asignaciones
jorg_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 NETBEANS
William 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
 
Guia poo
Guia pooGuia poo
Guia poo
Sergio Barbar
 

La actualidad más candente (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
 

Similar a Clase 5 funciones en javaScript

JavaScript funciones
JavaScript funcionesJavaScript funciones
JavaScript funciones
jcremiro
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
ANDRES FELIPE CRUZ ERAZO
 
Descubriendo scala
Descubriendo scalaDescubriendo scala
Descubriendo scala
nluaces
 
Unidad educativa
Unidad educativaUnidad educativa
Unidad educativa
Bryancampoverde14
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
flaquita_dany
 
Separata java script
Separata java scriptSeparata java script
Separata java script
Carlos Enrique Huamán Solis
 
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
Eudris Cabrera
 
JavaScript no es Vietnam
JavaScript no es VietnamJavaScript no es Vietnam
JavaScript no es Vietnam
Alex Casquete
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
Lao Tobon
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
flaquita_dany
 
Php funciones en detalle
Php   funciones en detallePhp   funciones en detalle
Php funciones en detalle
Dev 010101
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
Gladys Coromoto Vergel Rivera
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
Jaime David Romero Olivo
 
JavaScript.pptx
JavaScript.pptxJavaScript.pptx
JavaScript.pptx
AracelyCaiza1
 
Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadores
r0na91
 
Java 8
Java 8Java 8
Java 8
BVision
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
Bryangio2002
 
P_UNIDAD 4 FUNCIONES.pptx
P_UNIDAD 4 FUNCIONES.pptxP_UNIDAD 4 FUNCIONES.pptx
P_UNIDAD 4 FUNCIONES.pptx
Sonia Fernandez Sapena
 
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
galletasdecoco84
 
Funciones
FuncionesFunciones

Similar a 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
 

Más de José Ricardo Tillero Giménez

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
José Ricardo Tillero Giménez
 
Guía Ejercicios SQL
Guía Ejercicios SQLGuía Ejercicios SQL
Guía Ejercicios SQL
José Ricardo Tillero Giménez
 
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
José Ricardo Tillero Giménez
 
Guía 1 Ejercicios MR
Guía 1 Ejercicios MRGuía 1 Ejercicios MR
Guía 1 Ejercicios MR
José Ricardo Tillero Giménez
 
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
José Ricardo Tillero Giménez
 
Guía 3 Ejercicios MER Extendido
Guía 3 Ejercicios MER ExtendidoGuía 3 Ejercicios MER Extendido
Guía 3 Ejercicios MER Extendido
José Ricardo Tillero Giménez
 
Guía 2 Ejercicios MER
Guía 2 Ejercicios MERGuía 2 Ejercicios MER
Guía 2 Ejercicios MER
José Ricardo Tillero Giménez
 
Guía 1 Ejercicios MER
Guía 1 Ejercicios MERGuía 1 Ejercicios MER
Guía 1 Ejercicios MER
José Ricardo Tillero Giménez
 
Plan de evaluación BD2021
Plan de evaluación BD2021Plan de evaluación BD2021
Plan de evaluación BD2021
José Ricardo Tillero Giménez
 
Perfil Docente y Asesoría
Perfil Docente y AsesoríaPerfil Docente y Asesoría
Perfil Docente y Asesoría
José Ricardo Tillero Giménez
 
Planificación BD2021
Planificación BD2021Planificación BD2021
Planificación BD2021
José Ricardo Tillero Giménez
 
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
José Ricardo Tillero Giménez
 
NOTAS FINALES DE REDES AVANZADAS IIN4301
NOTAS FINALES DE REDES AVANZADAS IIN4301NOTAS FINALES DE REDES AVANZADAS IIN4301
NOTAS FINALES DE REDES AVANZADAS IIN4301
José Ricardo Tillero Giménez
 
NOTAS FINALES ELECTIVA II IN2102
NOTAS FINALES ELECTIVA II IN2102NOTAS FINALES ELECTIVA II IN2102
NOTAS FINALES ELECTIVA II IN2102
José Ricardo Tillero Giménez
 
NOTAS FINALES ELECTIVA II IN2101
NOTAS FINALES ELECTIVA II IN2101NOTAS FINALES ELECTIVA II IN2101
NOTAS FINALES ELECTIVA II IN2101
José Ricardo Tillero Giménez
 
Notas definitivas per base de datos
Notas definitivas per base de datosNotas definitivas per base de datos
Notas definitivas per base de datos
José Ricardo Tillero Giménez
 
Clase 6 VLAN
Clase 6 VLANClase 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
José Ricardo Tillero Giménez
 
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
José Ricardo Tillero Giménez
 
Manual Basico de jQuery
Manual Basico de jQueryManual Basico de jQuery
Manual Basico de jQuery
José Ricardo Tillero Giménez
 

Más de 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
 

Último

Escuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdfEscuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdf
Alejandrino Halire Ccahuana
 
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBALMATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
Ana Fernandez
 
Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.
https://gramadal.wordpress.com/
 
Módulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escrituraMódulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escritura
marilynfloresyomona1
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
EleNoguera
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
JimmyDeveloperWebAnd
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
johnyamg20
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
Jose Luis Jimenez Rodriguez
 
Mi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste BlancoMi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste Blanco
Ruth Noemí Soto Villegas
 
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdfEvaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
EfranMartnez8
 
Gracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdfGracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdf
Ani Ann
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CARMENSnchez854591
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
JAVIER SOLIS NOYOLA
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
romina395894
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
josseanlo1581
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
Mónica Sánchez
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
LuanaJaime1
 
Liturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptxLiturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptx
YeniferGarcia36
 
Mapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluaciónMapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluación
ruthmatiel1
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
Fernández Gorka
 

Último (20)

Escuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdfEscuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdf
 
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBALMATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
 
Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.
 
Módulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escrituraMódulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escritura
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
 
Mi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste BlancoMi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste Blanco
 
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdfEvaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
 
Gracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdfGracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdf
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
 
Liturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptxLiturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptx
 
Mapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluaciónMapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluación
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
 

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();