0% encontró este documento útil (0 votos)
593 vistas8 páginas

Alta Cohesión y Bajo Acoplamiento en JS

El documento habla sobre conceptos de programación orientada a objetos como polimorfismo, instancias, herencia, encapsulamiento y bajo acoplamiento. También cubre temas de JavaScript como recorrer arreglos, cadenas, selectores, funciones y conversión de JSON. Por último, explica conceptos de Polymer como propiedades de arreglos, eventos, condiciones, selectores this.$, enlaces y observadores.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
593 vistas8 páginas

Alta Cohesión y Bajo Acoplamiento en JS

El documento habla sobre conceptos de programación orientada a objetos como polimorfismo, instancias, herencia, encapsulamiento y bajo acoplamiento. También cubre temas de JavaScript como recorrer arreglos, cadenas, selectores, funciones y conversión de JSON. Por último, explica conceptos de Polymer como propiedades de arreglos, eventos, condiciones, selectores this.$, enlaces y observadores.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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

También podría gustarte