UIA1
UIA1
UIA1
PROGRAMACIÓN
DE SOFTWARE
MULTIPLATAFORMA
UNIDAD
1
INTRODUCCIÓN AL LENGUAJE
DE PROGRAMACIÓN JAVASCRIPT
Se prohíbe la reproducción total o parcial de esta obra, por cualquier
medio, electrónico o mecánico sin la autorización de la Dirección de
Educación a Distancia (UDB Virtual).
Introducción………………………………………………………………….……………… 1
Clase 1 - Introducción a JavaScript.……………….……………………..…….………. 3
Clase 2 - Fundamentos de la Programación………………..………..……………….. 10
Clase 3 - Estructuras de Control …………………………………………...…………… 18
Clase 4 - Aspectos Básicos de la Programación
Orientada a Objetos Clase..………………………………………………………………. 29
Referencias citadas Unidad 1………………………………..….…………..……………. 37
Glosario Unidad 1……………………………………………….………….……………….. 38
Introducción de
la Asignatura
En esta asignatura, el estudiante adquirirá competencias para diseñar, desarrollar, o
adaptar aplicaciones móviles multiplataforma, manejando el contenido y configurando las
diferentes Apis que poseen los dispositivos móviles. Permitiendo al estudiante, adquirir las
competencias necesarias para poder analizar las diferentes etapas del desarrollo, de una
aplicación móvil multiplataforma, así llevarlo desde el diseño, hasta su implementación y
despliegue.
El curso, está dividido de tal manera que el estudiante comprenda, cada una de las etapas
del desarrollo de aplicaciones móviles multiplataforma, empezando por aspectos básicos,
JavaScript, introducción a React, React Native, las buenas prácticas de desarrollo, el diseño
con Figma, las pantallas, paleta de colores, tamaño de letras, además configurando entorno
de trabajo, diseño de base de datos y finalizando con el despliegue del aplicativo en la App
Store iOS o Play Store Android.
1
El estudiante, desarrollará a través del proyecto de cátedra, una aplicación móvil
multiplataforma. Realizando las entregas de cada etapa del proyecto en el transcurso que
se desarrolla la asignatura, el estudiante pondrá en práctica el conocimiento adquirido,
aplicando estándares de calidad, principios, métodos y mejores prácticas de ingeniería de
software.
2
Clase 1| Introducción a JavaScript
1. ¿Qué es JavaScript?
JavaScript, es un lenguaje de programación utilizado para el desarrollo de aplicaciones o
páginas web interactivas, conocido por sus siglas JS, encargado dar creatividad y
dinamismo, no necesita de ningún compilador, en cualquier navegador que se utilice puede
ser leído directamente sin ayuda de terceros, permitiendo crear interfaz de usuario activas
y ofrece retroalimentación a los visitantes según navegan en sus páginas, por lo tanto, es
conocido como unos de los tres lenguajes nativos de la web, junto a HTML (Contenido y
Estructura) y a CSS (Diseño del Contenido y su Estructura).
Desde sus inicios, hasta la fecha ha evolucionado, permitiendo que no solo sea un lenguaje
interpretado por el navegador web, sino tener el alcance de ejecutarse del lado del servidor,
con la ayuda de NODE.JS, permitiendo así que varios framework o librerías de JS, surjan
en la actualidad, entre las más reconocidas están: Angular, React y Vue. Dentro del
desarrollo de la materia, se estará abordando React, trabajando específicamente la parte
hibrida del desarrollo móvil React Native.
JavaScript se emplea en una página web para dotarla de unas funcionalidades que
el HTML no puede proporcionar por sí mismo. Por lo tanto, el código JavaScript
debe poder integrarse en un documento HTML. Esto se logra mediante el tag
<script>, colocando el código entre <script> y </script>. El tag <script> recibe,
obligatoriamente, el atributo lenguaje, que permite determinar el lenguaje de script
que vamos a emplear. Como además de JavaScript existe una versión recortada de
Visual Basic que se llama VBScript y, para el lado del servidor, existen otros
lenguajes de script, es necesario especificarle al navegador el lenguaje de script que
vamos a emplear. En principio VBScript sólo es soportado por el navegador de
Microsoft, pero existe un plug-in para Netscape Navigator que permite ejecutar
VBScript en este último. Es, por lo tanto, imprescindible aclararle al navegador que
lo que vamos a usar es JavaScript, y no otro lenguaje de guiones. Además, es
imprescindible asegurarse de tener el navegador correctamente configurado para
que pueda funcionar con JavaScript.La sintaxis correcta para incluir código
JavaScript en nuestras páginas queda reflejada en el ejemplo a continuación:
3
<html>
<head>
<title>JavaScript. 20</title>
<script language="javascript">
<!-- Codigo JavaScript //-->
</script>
</head>
<body>
</body>
</html>
Como ve en la parte resaltada del código, el tag <script> incluye, como decía antes,
el atributo lenguaje, que recibe el valor “javascript”. Al tratarse de una línea de código
HTML, es indistinto que aparezca en mayúsculas o en minúsculas. Dentro del script
tenemos las líneas <!-- y //-->, que corresponden a los indicadores de comentarios
en HTML. Se emplean para indicar que, si el navegador no soporta JavaScript, se
ignoren las líneas de código en este lenguaje y no se produzca un error. Hoy día no
existe prácticamente ningún navegador que no soporte JavaScript (si queda alguno,
estará en un museo) pero, por si acaso, ponemos estas líneas siempre. No olvide
que siempre queda algún usuario que emplea navegadores digamos “exóticos” (el
poder del eufemismo), y algunos de ellos podrían no soportar JavaScript. Fíjese en
que la línea de cierre del comentario HTML va precedida por dos barras inclinadas.
Estas barras son necesarias para hacer que esta línea sea invisible para JavaScript,
puesto que se trata de una marca de comentario HTML, y evitar así un error de
sintaxis (hablaremos de comentarios en JavaScript más adelante). Este código que
acaba de ver no produce ningún efecto, no hace nada ni muestra nada en la pantalla
del navegador, ya que, como ve, no hay ninguna sentencia JavaScript ni tampoco
hay nada en la sección <body> de la página. Lopez Quijado (2010, p.17).
4
permite actualizar solo una sección de la página, sin necesidad de hacer un refresco general
de la página, en la Figura 1, se muestra todo el árbol de objetos que manipula el DOM.
Figura 1
Dom árbol objetos
Para ampliar el concepto del DOM, comparto el siguiente video para conocer más.
Jonmircha. (01 de mayo 2020). Curso JavaScript 61 DOM introducción [Archivo de Vídeo].
Youtube. https://www.youtube.com/watch?v=dF7lp_qBfV0&ab_channel=jonmircha
5
mucho tiempo hasta que el servidor volviera a mostrar el formulario indicando los
errores existentes. Brendan Eich, un programador que trabajaba en Netscape, pensó
que podría solucionar este problema adaptando otras tecnologías existentes (como
ScriptEase) al navegador Netscape Navigator 2.0, que iba a lanzarse en 1995.
Inicialmente, Eich denominó a su lenguaje LiveScript. Posteriormente, Netscape firmó
una alianza con Sun Microsystems para el desarrollo del nuevo lenguaje de
programación. Además, justo antes del lanzamiento Netscape decidió cambiar el
nombre por el de JavaScript. La razón del cambio de nombre fue exclusivamente por
marketing, ya que Java era la palabra de moda en el mundo informático y de Internet
de la época. La primera versión de JavaScript fue un completo éxito y Netscape
Navigator 3.0 ya incorporaba la siguiente versión del lenguaje, la versión 1.1. Al mismo
tiempo, Microsoft lanzó JScript con su navegador Internet Explorer 3. JScript era una
copia de JavaScript al que le cambiaron el nombre para evitar problemas legales.
Introducción a JavaScript Capítulo 1. Introducción www.librosweb.es 5 Para evitar una
guerra de tecnologías, Netscape decidió que lo mejor sería estandarizar el lenguaje
JavaScript. De esta forma, en 1997 se envió la especificación JavaScript 1.1 al
organismo ECMA (European Computer Manufacturers Association). ECMA creó el
comité TC39 con el objetivo de "estandarizar de un lenguaje de script multiplataforma
e independiente de cualquier empresa". El primer estándar que creó el comité TC39
se denominó ECMA-262, en el que se definió por primera vez el lenguaje ECMAScript.
Por este motivo, algunos programadores prefieren la denominación ECMAScript para
referirse al lenguaje JavaScript. De hecho, JavaScript no es más que la
implementación que realizó la empresa Netscape del estándar ECMAScript. La
organización internacional para la estandarización (ISO) adoptó el estándar ECMA-
262 a través de su comisión IEC, dando lugar al estándar ISO/IEC-16262.
Javier (2008, p 5-6).
6
1.2 Características Destacadas y Versiones
1.2.1 Características Destacadas
En la Figura 2 se muestran las características más destacadas de JavaScript.
Figura 2
Características destacadas
• Lenguaje del lado del cliente: Nos indica que se ejecuta en la máquina del propio
cliente a través de un navegador. De esta forma las solicitudes realizadas por el
usuario son mucho más rápidas que si se consulta al servidor.
• De tipado débil o no tipado: Un lenguaje sea de tipado débil quiere decir que no
es necesario especificar el tipo de dato al declarar una variable. Esta característica
supone una gran ventaja a la hora de ganar rapidez programando, pero puede
provocar que cometamos más errores que si tuviéramos esa restricción que poseen
los lenguajes de tipado fuerte como C++ o Java.
• Lenguaje orientado a objetos: Que un lenguaje esté orientado a objetos quiere
decir que utiliza clases y objetos como estructuras que permiten organizarse de
forma simple y son reutilizables durante todo el desarrollo. Otros lenguajes
orientados a objetos son Java, Python o C++.
• De alto nivel: Que JavaScript sea un lenguaje de alto nivel significa que su sintaxis
es fácilmente comprensible por su similitud al lenguaje de las personas. Se le llama
de “alto nivel” porque su sintaxis se encuentra alejada del nivel máquina, es decir,
del código que procesa una computadora para ejecutar lo que nosotros
programamos.
7
Un lenguaje de alto nivel como JavaScript permite que su barrera de entrada y su
curva de aprendizaje se acorte drásticamente. Un ejemplo podría ser que la
sentencia condicional empiece por “IF” que significa “si…” en inglés, permitiendo
asociar rápidamente su funcionamiento y significado. Otro lenguaje de alto nivel muy
utilizado y uno de los mejores para iniciarse en programación por esta característica
es Python.
• Lenguaje interpretado: JavaScript es un lenguaje interpretado porque utiliza un
intérprete que permite convertir las líneas de código en el lenguaje de la máquina.
Esto tiene un gran número de ventajas como la reducción del procesamiento en
servidores web al ejecutarse directamente en el navegador del usuario, o que es
apto para múltiples plataformas permitiendo usar el mismo código.
Tabla 1
Versiones de JavaScript
Javascript 1.1 1998 Es la versión que se diseñó con la llegada del navegador 3.0m
mejorando un poco su versión anterior e incluyendo el tratamiento
de imágenes dinámicas y la creación de arrays.
Javascript 1.2 1997 Esta nace para los navegadores 4.0, pero es un poco diferente a la
creada por la plataforma de Microsoft y Netscape, y se encontraban
en plena guerra por el mercado.
Javascript 1.3 1998 Versión implementada para los navegadores 5.0, ya se habían
logrado limar asperezas con la competencia
ECMAScript 5 2009 Esta es la versión que funciona en todos los navegadores del
mercado.
8
ECMAScrip 6 2015 A esta versión se le agrega una importante cantidad de novedades
entre ellas la programación orientada a objetos, expresiones de
flechas, iteradores, generadores o promesas para programación
asíncrona y se puede usar en todos los navegadores excepto en
Internet Explorer.
Este fue creado por la empresa Microsoft en el año 2012, como ayuda a los desarrolladores
de JS, a contar con un mejor mecanismo de estructuración, para grandes bases de código
y evitar errores comunes que lo realicen.
Para ampliar las diferencias de TypeScript vs Javascript, comparto el siguiente video para
conocer más.
BettaTech. (19 de julio 2020). Por qué debes aprender TypeScript, TypeScript vs
javascript [Archivo de Vídeo]. Youtube.
https://www.youtube.com/watch?v=DBk8zejrFHI&ab_channel=BettaTech
9
Clase 2| Fundamentos de la Programacion
2. Introducción al Lenguaje de Programación
JavaScript
Para realizar un programa se deben de conocer los aspectos básicos del lenguaje de
programación, los cuales nos darán la pauta para ir desarrollando paso a paso. Pero todos
tiene variables, constantes, operadores, estructuras, etc.
1. Los nombres de variables no deben empezar por un número, sino por una letra.
2. Podrán contener números, letras y el guion bajo, pero ningún otro signo (ni siquiera
el punto o el guion normal).
3. No contendrán letras acentuadas ni de alfabetos locales. No usaremos la ñ, la ç ni
ninguna otra letra que no sea de la alfabetización internacional (el alfabeto inglés).
Tampoco podrán contener espacios en blanco, espacios de no separación o
similares.
4. No podremos usar como nombre de una variable una palabra reservada de
JavaScript, aunque sí podemos declarar una variable cuyo nombre contenga una
palabra reservada, además de otros caracteres. Sin embargo, no es aconsejable
este tipo de nombres. En el punto 2.2 Tabla 5 muestra una lista de las palabras
reservadas del lenguaje, como referencia a este respecto.
5. Debemos recordar que JavaScript distingue entre mayúsculas y minúsculas, por lo
que la variable edad es distinta de Edad. Preste especial atención a este punto para
evitar errores que suelen ser muy difíciles de localizar.
6. Cuando el nombre de una variable esté formado por dos o más palabras, es una
buena costumbre poner la primera en minúsculas y las demás con la primera letra
mayúscula, sin separar. Por ejemplo, miEdad o nombreDelUsuario. (Lopez Quijado,
2010, p.40).
10
De las características que llegaron con ECMAScript 6 a JavaScript, son dos nuevas
maneras para hacer declaración de variables, en la Tabla 2 se muestran las diferentes
formas para realizar declaración de variables.
Tabla 2
Diferentes formas de declaración de variables
Tipo declaración Descripción
var Ámbito global y local, se puede declarar nuevamente.
let Ámbito bloque, modificarse, pero no volver a declararse.
const Mantiene valores constante, Ámbito de bloque
Fuente: Nota. Elaboración propia
11
Para el ejemplo anterior, uso de var, está generando un error, “Uncaught ReferenceError:
Console is not defined”, está intentando imprimir en consola, una variable que está en
ámbito local “var saludo”, solo tiene acceso al ámbito global fuera de la función. Dónde
están declaradas dos variables con el mismo nombre “var nombre”, esto no ocasiona ningún
error como otros lenguajes, la última variable declarada e inicializada en el último valor, que
tendrá la variable.
Para el ejemplo del uso de let, está generando un error, “Cannot redeclare block-scoped
variable 'nombre'”, cuando se declaran dos variables con el mismo nombre, y además si
se quiere imprimir la variable de bloque “saludo”.
12
Ejemplo para const:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo Let</title>
<meta charset="UTF-8">
</head>
<body>
<script>
// ámbito Global
const nombre = 'Pedro';
function nuevoSaludo() {
// ámbito Local
const saludo = 'hola';
document.write('Saludo : ' + saludo);
}
//Console.log(saludo);
document.write('nombre : ' + nombre);
document.write('<br/>')
nuevoSaludo();
</script>
</body>
</html>
Para el ejemplo del uso de const, está generando un error, “Uncaught ReferenceError:
Console is not defined'”, cuando se declaran dos variables con el mismo nombre, y
además si se quiere imprimir la variable de bloque “saludo”.
Constante son variables con una particularidad no se cambia a través de la asignación, esto
nos ayuda con la optimización de la memoria e identificación de errores lógicos al momento
de programar. todos los lenguajes de programación utilizan variables, JS no es la
excepción, a continuación, se presentan los cinco tipos de variables y sus usos: Texto
(String), Numero, Booleanas, Objetos, Funciones Variables de Tipo Texto.
13
Ejemplo para String:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo Variable</title>
<meta charset="UTF-8">
</head>
<body>
<script>
var val1 = "comillas dobles";
var val2 = 'comillas simples';
var val3 = "comillas 'simples' dentro de comillas dobles";
document.write('valor 1 : ' + val1);
document.write('<br/>')
document.write('valor 2 : ' + val2);
document.write('<br/>')
document.write('valor 3 : ' + val3);
</script>
</body>
</html>
Figura 3
Resultado
Las variables de String almacenan una cadena de caracteres, y pueden ir entre comillas
dobles o comillas simples. El uso de las comillas simples o dobles es indistinto lo importante
al momento de programar es el orden en que se utilizan, si en algún momento su uso es
necesario debemos de tener en cuenta la variable Texto Comillas Simples para abrir y
cerrar, ya que, si mezclamos el tipo de comilla nos dará error, dado que eso no está
permitido en JS.
Para ampliar la introducción de JavaScript, comparto el siguiente video para conocer más.
14
Jonmircha. (07 feb 2020). Curso JavaScript 1 Introducción [Archivo de Vídeo]. Youtube.
https://www.youtube.com/watch?v=2SetvwBV-SU
Tabla 3
Palabras reservadas JS
Palabas Reservadas
case yield new return super switch this
catch instanceof typeof var else in throw
export extends finally for function if import
class const continue debugger default delete do
break try void while with
Fuente: Nota. Elaboración propia, a partir de Lopez Quijado (2010).
Tabla 4
Tipos de Datos
Tipo de Dato Uso
Boolean Almacenar verdadero o falso
Number Almacenar datos numéricos
String Almacenar datos caracteres
BigInt Almacenar Números enteros grandes
Symbol Almacenar Caracteres
Object Almacenar objetos
Fuente: Nota. Elaboración propia, a partir de Haverbeke (2018)
15
2.4 Operadores
Los operadores en JS, ayudan a realizar tareas, de filtrar y evaluar condiciones que deben
de controlarse. Existen los operadores aritméticos, lógicos y relacionales.
Tabla 5
Operadores aritméticos
Operador Uso
suma (+) A+B
resta (-) A-B
multiplicación (*) A*B
división (/) A/B
residuo (%) A%B
incremento (++) A++
decremento (--) A--
Fuente: Nota. Elaboración propia, a partir de Haverbeke (2018)
NOT =! A != B
Fuente: Nota. Elaboración propia, a partir de Haverbeke, (2018)
16
Tabla 7
Operadores relacionales
Operador Uso
in NumeroA in objectoB
instanceof objectoA instanceof objectoB
Para ampliar el tema de los operadores, comparto el siguiente video para conocer más.
17
Clase 3| Estructuras de Control
3. Estructuras de Selección e Iterativas
Cada programa que se realiza está compuesto por un conjunto de sentencias que definen
lo que este va a realizar durante la ejecución. Permitiendo realizar captura de datos,
operaciones, transformación de datos, generar salida de información, cálculos
matemáticos, almacenamiento de datos, etc. Se denomina flujo de un programa al orden
de ejecución de las sentencias, que forman parte del programa. Las estructuras de control
permiten a los lenguajes de programación, la toma decisiones en acciones a realizar. Al
hacer un programa, se necesita establecer estructuras de control, selección, condiciones o
decisiones que permitan solucionar un problema.
Para la estructura if else if, tenemos una o más condiciones y dos caminos que se pueden
tomar: verdadero o falso o como es conocido en todos los lenguajes de programación, como
true o false, la Figura 4 es la representación gráfica, de las estructuras anidadas, según sea
el caso.
Figura 4
If else
18
Por ejemplo, cuando ingresamos a un sitio web o aplicación móvil que solicita ingresar
usuario y contraseña, se pueden dar dos escenarios o más, lo más comunes son: el usuario
ingrese correctamente las credenciales e ingrese al sistema, la segunda opción, el usuario
ingresa incorrectamente sus credenciales y no le permite ingresar. Con el siguiente ejemplo,
se pone en práctica lo descrito:
Ejemplo if else
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo de JavaScript</title>
<meta charset="UTF-8">
</head>
<body>
<script>
let usuario;
let contrasena;
usuario = prompt('Ingrese usuario:');
contrasena = prompt('Ingrese contrasena:');
if (usuario == "alex" && contrasena == "alex") {
document.write('Bienvenido al Sistema : ' + usuario);
} else {
document.write('Las credenciales no son las correctas');
}
</script>
</body>
</html>
En el código anterior se tiene el código JS embebido dentro de la página html, es una forma
de trabajar, aunque no la mejor, lo más recomendable es hacerlo fuera en un archivo js
externo e incluirlo dentro de la página, para efectos de ejemplo es funcional, conforme el
curso avance se eran implementado las demás formas de trabajar JS.
En ejemplo anterior se pone en práctica (if else), si el usuario y contraseña cumplen con la
igualdad, se genera verdadero (true) y si no cumple la condición se genera falso (false), y
el usuario no ingresa al sistema. Así como este ejemplo, podemos enumerar muchos más,
en el transcurso del curso, se irán realizando más ejemplos.
19
3.1.2 Estructura switch – case
Esta estructura es una forma de trabajar, ampliando la estructura de selección if, cuando se
está evaluando una condición que tiene demasiados if anidados, es recomendable ocupar
switch case, que está diseñado para ese propósito, tener múltiples opciones en un solo
bloque. Además, ofrece una ventaja, si no cumple ninguna de las opciones, termina
saliendo por el valor por default.
Figura 5
Switch case
20
Por ejemplo, cuando hacemos uso de la calculadora y realizamos las operaciones básicas,
sumar, restar, multiplicar y división, podemos apoyarnos de la estructura switch case para
poder resolver la problemática. Llevándolo a la práctica con el siguiente código:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo Switch Case</title>
<meta charset="UTF-8">
</head>
<body>
<script>
let valor1;
let valor2;
let res;
let op;
valor1 = parseInt(prompt('Ingrese primer valor :'));
valor2 = parseInt(prompt('Ingrese segundo valor :'));
op = prompt('Ingrese operacion S,R,M,D :');
switch (op) {
case 'S':
res = valor1 + valor2;
document.write('Resultado Suma : ' + res);
break;
case 'R':
res = valor1 - valor2;
document.write('Resultado Resta : ' + res);
break;
case 'M':
res = valor1 * valor2;
document.write('Resultado MUltiplicacion : ' + res);
break;
case 'D':
res = valor1 / valor2;
document.write('Resultado Division : ' + res);
break;
default:
document.write('Debe ingresar una operacion S,R,M,D');
}
</script>
</body>
</html>
Para ampliar las estructuras de control, comparto el siguiente video para conocer más.
21
Jonmircha. (26 feb 2020). Curso JavaScript 14 Condicionales [Archivo de Vídeo]. Youtube.
https://www.youtube.com/watch?v=9h5hyh_wDjo&list=PLvq-jIkSeTUZ6QgYYO3MwG9EMqC-
KoLXA&index=15
Donde la condición a evaluar está al inicio, le sigue el signo de interrogación de cierre (?)
donde si cumple la condición dará el mensaje después del signo y si no cumple dará el
mensaje después de los dos puntos (:).
Donde la condición a evaluar está al inicio, le sigue el signo de interrogación de cierre (?)
donde si cumple la condición dará el mensaje después del signo y si no cumple, realiza la
segunda condición, para repetir el ciclo de verdadero y falso. Así sucesivamente puede
seguir anidando más condiciones. Llevándolo a la práctica con el siguiente código:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo Ternario</title>
<meta charset="UTF-8">
</head>
<body>
<script>
//una condicion
let salario;
salario = parseInt(prompt('Ingrese primer valor :'));
salario > 100 ? document.write('Mayor Salario') : document.write('Menor Salario');
//multliples condiciones
document.write('<br/>')
let usuario;
22
usuario = prompt('Ingrese usuario:');
usuario == 'juan' ? document.write('NO tiene acceso 1') : usuario == 'pedro' ?
document.write('Si tiene acceso') : document.write('NO tiene acceso 2')
</script>
</body>
</html>
Figura 6
Estructuras Iterativas
23
for (inicialización; condición; incremento o decremento) {
// Sentencias a ejecutar por cada iteración
}
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo For</title>
<meta charset="UTF-8">
</head>
<body>
<script>
//una condicion
let valortabla;
let res;
valortabla = parseInt(prompt('Ingrese un numero entre 1 a 9 :'));
for (let i = 1; i <= 10; i++) {
res = i * valortabla;
document.write(i + ' x ' + valortabla + ' : ' + res);
document.write('<br/>')
}
</script>
</body>
</html>
Figura 7
Ingreso número
24
El resultado de la ejecución muestra la siguiente pantalla, Figura 8, resultado ciclo for:
Figura 8
Resultado ciclo for
Variable inicialización
while (condición) {
// Sentencias a ejecutar por cada iteración
incremento o decremento
}
Misma funcionalidad del for, pero con diferente estructura. A continuación, se presenta un
ejemplo de cómo utilizar la estructura while.
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo While</title>
<meta charset="UTF-8">
</head>
<body>
25
<script>
let valortabla;
let res;
let i = 10;
valortabla = parseInt(prompt('Ingrese un numero entre 1 a 9 :'));
while (i > 0) {
res = i * valortabla;
document.write(i + ' x ' + valortabla + ' : ' + res);
document.write('<br/>')
i--;
}
</script>
</body>
</html>
Se realizó el mismo ejemplo que se utilizó para la estructura del for, generar la tabla de
multiplicar, introduciendo el número de la tabla a generar, pero con la diferencia que se
hace un conteo decremento, para comprobar que ambas opciones son factibles, El
resultado de la ejecución muestra la siguiente pantalla, Figura 9, resultado ciclo while:
Figura 9
Resultado ciclo while
26
La única diferencia que tiene con los bucles antes vistos es que siempre va a hacer la
primera iteración, aunque no cumpla la condición, porque la condición se evalúa hasta el
final. La sintaxis se muestra a continuación:
variable inicialización;
do {
// Sentencias a ejecutar por cada iteración
incremento o decremento
} while (condición)
A continuación, se presenta un ejemplo de cómo utilizar la estructura do while. Retomando
el mismo ejemplo del for y while, así comprobar que todos los bucles pueden utilizarse para
resolver el mismo problema.
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo Do While</title>
<meta charset="UTF-8">
</head>
<body>
<script>
//una condicion
let valortabla;
let res;
let i = 1;
valortabla = parseInt(prompt('Ingrese un numero entre 1 a 9 :'));
do {
res = i * valortabla;
document.write(i + ' x ' + valortabla + ' : ' + res);
document.write('<br/>')
i++;
}while (i <= 10)
</script>
</body>
</html>
27
El resultado de la ejecución muestra la siguiente pantalla, Figura 10, resultado ciclo do
while:
Figura 10
Resultado ciclo do while
Para ampliar las estructuras repetitivas, comparto el siguiente video para conocer más.
Jonmircha. (26 feb 2020). Curso JavaScript 15 Ciclos (Loops) [Archivo deVídeo].
Youtube.https://www.youtube.com/watch?v=AapgtR0Rwk0&list=PLvq-
jIkSeTUZ6QgYYO3MwG9EMqC-KoLXA&index=16
28
Clase 4| Aspectos Básicos de la
Programación Orientada a Objetos
4. Clases y Objetos
Antes de iniciar a definir las clases y objetos es importante mencionar que todo se origina
de la Programación Orientada Objetos (POO), una metodología de trabajo más ordenada y
reutilizable que la manera convencional de programar. La filosofía es reutilización de código
y dividir el código en pequeñas tareas para resolver el problema.
4.1 Clases
Las clases son un conjunto de instrucciones para resolver un problema, sus partes
principales son: atributos, constructor, funciones y métodos. La clase ayuda a encapsular
el trabajo, definiendo los modificadores de acceso: privado, público. No todo debe ser
público y no todo debe ser privado, dependerá de cómo se haya realizado el análisis, para
la resolución del problema. Para definir una clase se realiza mediante la palabra reservada
class. La sintaxis se muestra a continuación:
class MyClass {
// atributos
Atributo 1;
Atributo 2;
// métodos de clase
constructor() { ... }
method1() { ... }
method2() { ... }
method3() { ... }
...
}
Para tener una idea más clara, se hará un ejemplo, se definirá una clase llamada
calculadora que recibirá dos números y el operador, haciendo referencia a las cuatro
operaciones básicas de una calculadora (suma, resta, multiplicar, división).
29
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo Clase</title>
<meta charset="UTF-8">
</head>
<body>
<script>
//una condicion
let lvalor1;
let lvalor2
let lop;
lvalor1 = parseInt(prompt('Ingrese un numero entre 1 a 9 :'));
lvalor2 = parseInt(prompt('Ingrese un numero entre 1 a 9 :'));
lop = prompt('Ingrese operacion s,r,m,d :');
class Calculadora {
constructor(valor1, valor2, pop) {
this.valor1 = valor1;
this.valor2 = valor2;
this.op = pop;
}
operacion(){
if (this.op == 's') {
return this.sum();
}else if(this.op == 'r') {
return this.res();
}else if(this.op == 'm') {
return this.mul();
}else if(this.op == 'd') {
return this.div();
}
}
sum() {
return (this.valor1 + this.valor2);
30
}
res() {
return (this.valor1 - this.valor2);
}
mul() {
return (this.valor1 * this.valor2);
}
div() {
return (this.valor1 / this.valor2);
}
}
const p1 = new Calculadora(lvalor1, lvalor2, lop);
document.write(' Resultado : ' + p1.operacion());
</script>
</body>
</html>
Al ejecutarse muestra la pantalla reflejada en la Figura 11, ingrese primer número, similar
pantalla muestra para solicitar el segundo número y la operación a realizar (s,r,m,d).
Figura 11
Ejemplo clase
Para ampliar el tema de clases, comparto el siguiente video para conocer más.
31
4.2 Objetos
Los objetos son las instancias de las clases, reservan un espacio en memoria, por cada
instancia creada. Cada objeto representa un espacio en memoria por separado, así cada
operación que se realiza con cada objeto instanciado es independiente. La sintaxis se
muestra a continuación: const objeto = new Nombre Clase (parámetros);
donde los parámetros son recibidos por el constructor, para inicializar los atributos de la
clase. La palabra reservada new se emplea para crear nuevos objetos. En la Figura 12, se
muestra cómo se reserva la memoria para cada objeto creado.
Figura 12
Creación objeto.
Para ampliar el tema de objetos, comparto el siguiente video para conocer más.
32
4.3 Atributos
Los atributos son las variables de las clases donde se almacena la información, estas son
inicializadas por el constructor. Tomando una porción de código del ejemplo anterior
calculadora, se puede verificar que llegan tres parámetros, enviados en la creación del
objeto, para inicializar los atributos. (valor1, valor2, pop)
4.4 Constructores
Los constructores toman una función importante en el desarrollo de software orientado a
objetos, ya que son los encargados de inicializar los atributos de la clase. No se puede
llamar de manera directa, sino invocado una única vez al momento de instanciar un objeto.
En ejemplo de la Calculadora, se puede observar la creación del constructor, inicializa los
valores de manera directa.
4.5 Métodos
Los métodos son subrutinas que manipulan datos definidos por las clases y permiten
acceder a dichos datos. Un programa interactúa con una clase a través de sus métodos.
En el ejemplo de la Calculadora podemos ver los cinco métodos creados:
33
operacion(){
if (this.op == 's') {
return this.sum();
}else if(this.op == 'r') {
return this.res();
}else if(this.op == 'm') {
return this.mul();
}else if(this.op == 'd') {
return this.div();
}
}
sum() {
return (this.valor1 + this.valor2);
}
res() {
return (this.valor1 - this.valor2);
}
mul() {
return (this.valor1 * this.valor2);
}
div() {
return (this.valor1 / this.valor2);
}
Donde el método operación hace el llamado de cada una de las operaciones básica de
suma, resta, multiplicación y división, según la opción que el usuario haya ingresado.
34
que no ocupa nadie más de la familia; dentro de casa en privado, fuera de ella en el patio
protegido y fuera del patio, está lo público. Un ejemplo para dejar claro los conceptos:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo Clase Persona</title>
<meta charset="UTF-8">
</head>
<body>
<script>
//una condicion
let lvalor1;
let lvalor2
let lop;
lnombre = prompt('Ingrese nombre :');
lapellido = prompt('Ingrese apellido :');
ledad = prompt('Ingrese edad:');
class Persona {
constructor(pnombre, papellido, pedad) {
//variables publica
this.nombre = pnombre;
this.apellido = papellido;
// variables privada, sin el this.
let edad = pedad;
}
}
const per = new Persona(lnombre, lapellido, ledad);
document.write(' Su nombre : ' + per.nombre + ' ' + per.apellido);
document.write(' Su edad : ' + per.edad);
35
</script></body>
</html>
36
Referencias citadas en UNIDAD #1
37
Glosario de los términos citados
en la UNIDAD #1
JS JavaScript
ECMASCRIPT Especificación de JS
38