Programación Orientada a Objetos
Buenas prácticas
La Alta Cohesión debe ser acompañada de:
● Polimorfismo
● Instancias
● Bajo Acoplamiento
● Patrón de diseño Factory Method
Objetos
Es un modelo para la creación de objetos
● Instancia
● Arreglo
● Lista
● Clase
Inicializar
Es un método especial de una clase que permite inicializar los valores de un objeto
● Objeto
● Constructor
● Herencia
● Virtual
Aplicación de Polimorfismo
El siguiente bloque de código ejemplifica una aplicación de polimorfismo conocida como:
● Instancia Múltiple
● Supercarga de constructores
● Sobrecarga
● Constructores dinámicos
Entre Módulos
Cuando los módulos no dependen o depende muy poco del funcionamiento interno de otros
módulos ¿Estamos hablando de?
● Alta Cohesión
● Bajo Acoplamiento
● Encapsulamiento
● Módulos Virtuales
JavaScript
Recorrer arreglo
¿Cuál de las siguientes es la forma correcta de recorrer un arreglo?
● [1,2,3,4,5].for(function(i) { return i})
● [1,2,3,4,5].forEach(function(i) { return i})
● [1,2,3,4,5].concat(function(i) { return i})
● [1,2,3,4,5].collect(function(i) { return i})
Proposición verdadera
¿Cuál de las siguientes proposiciones es verdadera?
● JS no diferencia entre mayúsculas y minúsculas
● Para trabajar con un String se hace uso indistinto de comillas simples y comillas
dobles
● En JS no es posible usar el ciclo while
● JS necesita un Polyfill para ejecutarse en el navegador
Filtrando
Dado el siguiente código, ¿cuál es el resultado que se imprimirá en consola?
● []
● [“perro”, “gato”, “loro”, “canario” ]
● [“gato”, “loro”]
● [“perro”, “canario” ]
¿Qué imprime la función?
¿Qué valor imprime la función foo al ejecutar bar?
● error
● undefined
● 3
● 2
Funciones
¿Qué obtendremos al ejecutar el siguiente código?
● “function”
● “undefined”
● “number”
● Error
Longitud de cadena
¿Con cuál de los siguientes se obtiene la longitud de la cadena “Hello”?
● “Hello”.length
● “Hello”.count
● “Hello”.numberOf
● “Hello”.content
Selectores
En JavaScript considera el siguiente selector:
¿Qué seleccionaría dicho selector en el documento?
● Los primeros cinco elementos de <p>
● El primer elemento <p> con class = “five”
● Todos los elementos <p> con class = “five”
● Ninguno, este no es un selector vaĺido
Valor de retorno
¿Cuál es el valor de retorno de la siguiente función?
● true si el valor de foo es distinto de 0, null si es igual a cero
● true si el valor de !foo es false y null si el valor de !foo es true
● foo * 3 si el valor de !foo es false y null si el valor de !foo es true
● error
JavaScript clásico
¿Cuál es el valor de y después del siguiente código?
● false
● true
● undefined
● ninguno de los anteriores
JSON
De esta manera podemos convertir un texto JSON en un objeto de JavaScript
● var obj = [Link](json);
● var obj = [Link](json);
● var obj = [Link](json);
● var obj = [Link](json);
Polymer
Value de propiedad array
Selecciona la forma correcta de asignar un valor por defecto a una propiedad de tipo Array
● value: “[]”
● value: []
● value = new Array();
● value: () => []
Gesture Events
¿Cuáles son los Gesture Events en Polymer?
● down, up, move, track, scroll
● start, end, click, track
● start, end, tap, track, scroll
● down, up, tap, track
Condiciones
Supongamos la siguiente condición para un requerimiento:
Si la edad del usuario es mayor o igual a dieciocho, el color del texto de su nombre debe ser
azul, si no debe ser rojo.
● Usando un dom-if para cada una de las condiciones
● Usando dom-if-else
● Usando un dom-if para una condición y un dom-else para otra
● Todas las anteriores son válidas
Definiendo propiedades
¿Cuál de las siguientes keys no es válida en la declaración de una propiedad en Polymer?
● readyToVerify
● notify
● readOnly
● type
Objetos en Arreglos
Supongamos que tienes un arreglo llamado persons, el cual tiene objetos como el
siguiente:
La longitud del arreglo es 10. Tú necesitas modificar el valor de lastName del quinto
elemento. ¿Cuál es la forma correcta de hacer esto en Polymer?
● [Link](‘persons.[4].lastName’, ‘My Last Name’);
● [Link](‘[Link]’, ‘My Last Name’);
● [Link](‘[Link]-name’, ‘My Last Name’);
● [Link][4].lastName = ‘My Last Name’;
this.$.id
¿Para qué se usa this.$.id?
● Para seleccionar un nodo aleatorio que exista en el documento
● Para seleccionar un nodo específico creado en el light DOM del elemento
● Para seleccionar un nodo específico del shadow DOM
● Para seleccionar un nodo aleatorio disponible para usar
Eventos de forma declarativa
¿Cuál es la forma correcta para asignar un listener a un evento de forma declarativa?
● addEventListener(‘nombre-del-evento’, listener)
● <componente nombre-del-evento=”listener”></componente>
● <componente nombre-del-evento=”listener”></componente>
● <componente on-nombre-del-evento=”listener”></componente>
● <componente nombre-del-evento=”[Link]”></componente>
Filtrando
Permite el uso de una función filter como una de sus propiedades
● dom-if
● dom-repeat
● dom-module
● dom-filter
Binding en textos
Supongamos el siguiente campo de texto en un webcomponent
Así mismo existe una propiedad lastName en dicho webcomponent, ¿cómo debería ser el
binding del campo de texto desde y hacia la propiedad lastName?
● <input name=”lastname” type=”text” value=”{{input::lastName}}”>
● <input name=”lastname” type=”text” value=”{{lastName}}”>
● <input name=”lastname” type=”text” value=”{{lastName::input}}”>
● <input name=”lastname” type=”text” value=”{{last-name::input}}”>
Observando
Si estamos usando un observer para monitorear dos propiedades, estamos hablando de un
observer tipo:
● Simple
● Doble
● Complejo
● Binario