Puesto: Front End Engineer.
- Existe un div#main con 2 sub-divs (#div1, #div2) exactamente iguales en estructura.
<div id="main">
<div id="div1">
<p></p>
<p></p>
<p>
<div></div>
<div>
<a href="#">
<span id="mi-span"></span>
</a>
</div>
</p>
<p></p>
</div>
<div id="div1">
<p></p>
<p></p>
<p>
<div></div>
<div>
<a href="#">
<span id="mi-otro-span"></span>
</a>
</div>
</p>
<p></p>
</div>
</div>
Crea una función (o varias) que encuentre si la posición de span#mi-otro-span
coincide con la posición de span#mi-span
en sus respectivos "sub-dom".
Extensiones:
- ¿Qué pasa si agrego 2 divs en cualquier parte del div#2
?, ¿cómo modifico la(s) función(es) para que me alerten de incosistencias en el DOM?
- Recursividad
- (Si usó recursividad): ¿Puedes eliminar la recursividad?
- (Si no usó recursividad): ¿Puedes volverlo recursivo?
- ¿Qué ventajas hay entre una u otra?
- ¿Cómo puedo hacerlo mejorar su performance?
- Con el siguiente Objeto obtenido desde una API:
{
data: [{
día: 'Lunes',
temp: {
max: 29,
min: 12,
},
presion: '128',
viento: '110'
}, {
día: 'Martes',
temp: {
max: 29,
min: 12,
},
presion: '128',
viento: '110'
}, {
día: 'Miercoles',
temp: {
max: 29,
min: 12,
},
presion: '128',
viento: '110'
}, { ... }]
city: 'Santiago'
}
¿Puedes crear un acordeón (la funcionalidad del gif)?
Extensiones:
- ¿Puedes volverlo responsive?
- (Si usó floats) ¿Puedes no usar Floats?
- (Si usó flex) ¿Puedes no usar Flex?
- ¿Cómo puedo hacerlo mejorar su performance?
- Crea una función que memoize cualquier función:
funcionAMemoizar(par1, par2, par3); // calcula 6;
var memoizada = memoizador(funcionAMemoizar);
memoizada(par1, par2, par3); // calcula 6
memoizada(par1, par2, par3); // devuelve 6, pero desde la caché (Ya memoizada, no lo calcula)
En donde un cliente pueda agregarlo a su sitio mediante un script en el header:
<head>
<script src="{WIDGET_URL}" charset="utf-8"></script>
</head>
En donde {WIDGET_URL}
es la URL del script que cargará el widget en el sitio del cliente:
- ¿Cómo debería ser esa URL?
- ¿Qué tipo de consideraciones deberíamos tener al proveer esta funcionalidad al cliente?
- Escribe el script que genera dicho widget.
- ¿Como podemos optimizar el script para performance?
- ¿Qué podemos hacer para optimizar para navegadores nuevos y viejos por separado?
- ¿Debería ser responsive? ¿Adaptable? ¿Estático?