Repasos, Ejercicios y Preguntas
Preguntas de Repaso de jQuery
jQuery uses CSS selectors to select elements? True or false?
Which sign does jQuery use as a shortcut for jQuery?
With jQuery, look at the following selector:
$("div")
. What does it select?The jQuery
html()
method works for both HTML and XML documents. True or false?What is the correct jQuery code to set the background color of all p elements to red?
With jQuery, look at the following selector:
$("div.intro")
. What does it select?Which jQuery method is used to hide selected elements?
Which jQuery method is used to set one or more style properties for selected elements?
Which jQuery method is used to perform an asynchronous HTTP request?
What is the correct jQuery code for making all div elements 100 pixels high?
Which jQuery function is used to prevent code from running, before the document is finished loading?
Which jQuery method should be used to deal with name conflicts?
Which jQuery method is used to switch between adding/removing one or more classes (for CSS) from selected elements?
Look at the following jQuery selector:
$("div#intro .head")
. What does it select?Is jQuery a W3C standard?
Preguntas de Repaso de Underscore
¿Que argumentos espera el método
template
de Underscore? ¿Cual es la función de cada uno de ellos?¿Que diferencia hay entre
<% ... %>
,<%= ... %>
y<%- ... %>
?
- El atributo
templateSettings
de Underscore puede ser usado para configurar los templates. Rellene las expresiones regulares que faltan para que se usen delimitadores con llaves como{{ ... }}
para evaluar,{{= ... }}
para interpolar y{{- ... }}
para interpolar y escapar el HTML:
- Queremos mostrar una lista de
items
en una tabla con dos columnas. En la primera columna va el número de orden y en la segunda el nombre del item. El template Underscore se carga desde el elemento#usageList
del DOM y el resultado del template se vuelca en el elemento#target
como sigue:
var items = [ {name:"Alejandro"}, {name:"......."}, {name:"Zacarias"} ];
var template = usageList.innerHTML;
target.innerHTML = _.template(template,{items:items});
Complete el identificador del <script>
, el identificador del
<div>
usado para la salida y la parte que falta entre las
etiquetas <tbody>
:
Preguntas de Repaso de localStorage
¿Que diferencias y que similitudes hay entre los cookies y localStorage?
¿Que diferencias hay entre localStorage y sessionStorage?
¿En que consiste las reglas de segregación conocidas como same origin policy? ¿Como se relacionan con localStorage?
¿Como guardo en localStorage el contenido de una variable
chuchu
? ¿Como leo el contenido almacenado en localStorage con clavechuchu
?¿Como borro una clave almacenada en localStorage?
¿Que es LocalStorage? ¿Que hace la siguiente línea?
if (window.localStorage) localStorage.original = temp;
¿Cuando se ejecutará esta callback? ¿Que hace?
window.onload = function() {
// If the browser supports localStorage and we have some stored data
if (window.localStorage && localStorage.original) {
document.getElementById("original").value = localStorage.original;
}
};
Preguntas de Repaso de Heroku
Una vez instalado el Heroku toolbelt nos debemos autenticar en heroku con el cliente. ¿Cual es el comando para autenticarnos?
¿Cual es el comando para crear nuestra aplicación en Heroku (suponemos que ya esta bajo el control de
git
? ¿Qué remoto tendremos definido después de crear nuestra aplicación en Heroku?¿Cual es el comando para desplegar nuestra aplicación en Heroku?
Si la versión que queremos publicar en heroku no está en la rama
master
sino que está en la ramatutu
¿Como debemos modificar el comando anterior?¿Con que comando puedo abrir una ventana en el navegador que visite la aplicación desplegada? ¿Que formato tiene la URL para nuestra aplicación?
¿Con que comando puedo ver los logs de la aplicación desplegada?
¿Como se debe llamar el fichero en el que explicito que comando debe usarse para arrancar nuestra aplicación en Heroku?
Heroku se percata que nuestra aplicación es una aplicación desarrollada con
Node.js
por la presencia de un cierto fichero. ¿De que fichero estamos hablando?¿Cual es la mejor forma de ejecutar en local una aplicación express.js que va a ser desplegada en Heroku?
Preguntas de Repaso de ECMA6
- Observemos este ejemplo:
class Contact {
constructor(name, email, button) {
this.name = name;
this.email = email;
button.onclick = function(event) {
sendEmail(this.email);
}
}
}
¿Cuanto vale
this
en la línea 6?¿Como podemos reescribir este código en ECMA6 para que
this
refiera al objetoContact
?
- ¿Que se entiende por Hoisting en JS? ¿Que efectos indeseables conlleva? ¿Como se soluciona en ECMA6?
Preguntas de Repaso de Mongo y Mongoose
¿Que diferencia hay entre una tabla de una base de datos relacional y una collection de MongoDB?
¿Como se llama la primary key de un documento MongoDB?
Escriba el código Mongoose para conectarse a la MongoDB database
chuchu
Escriba el código Mongoose para crear un esquema para modelar una colección de
usuarios
Escriba el código Mongoose para crear un modelo a partir del esquema anterior
Escriba el código Mongoose para crear un documento usuario y guardarlo en la base de datos
Escriba el código Mongoose para buscar por un documento usuario con nombre
'Pepe'
Preguntas de Repaso de EJS
Véase
Mejore este template
usando un helper proveído por EJS
Preguntas de Repaso de Jade
Traduzca a Jade el siguiente código HTML:
<div id="content">
<div class="block">
<input id="bar" class="foo1 foo2"/>
</div>
</div>
¿Que hace el punto después de un elemento? como en:
p. foo bar hello world
Supongamos que el objeto interpolado es:
{"name": "Hello <em>World</em>"}
¿Que diferencia hay entre estas dos interpolaciones?
1. `li= name`
2. `li!= name`
¿Que diferencia hay entre estas dos interpolaciones?
li Say #{name}
li Say !{name}
Traduzca a Jade el siguiente fragmento HTML:
<input type="text" placeholder="your name"/>
Preguntas de Repaso de SASS
¿Como se inicializa una constante en SASS?
Reescriba este fragmento CSS en SASS:
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
Preguntas de Repaso de Expresiones Regulares
- Rellene las partes que faltan:
- Escriba la expresión regular
r
para que produzca el resultado final:
- Rellene el valor que falta:
Conteste:
Explique que hace el siguiente fragmento de código:
> RegExp.prototype.bexec = function(str) { ... var i = this.lastIndex; ... var m = this.exec(str); ... if (m && m.index == i) return m; ... return null; ... } [Function]
Rellene las salidas que faltan:
Escriba una expresión JavaScript que permita reemplazar todas las apariciones de palabras consecutivas repetidas (como
hello hello
) por una sóla aparición de la misma¿Cual es la salida?
> "bb".match(/b|bb/) > "bb".match(/bb|b/)
Justifique su respuesta.
El siguiente fragmento de código tiene por objetivo escapar las entidades HTML para que no sean intérpretadas como código HTML. Rellene las partes que faltan.
Preguntas de Repaso de JSON
- ¿Como se llama el método que permite obtener una representación como cadena de un objeto? ¿Que parámetros espera? ¿Como afectan dichos parámetros?
Preguntas de Repaso de OOP
Escriba un código JavaScript que defina una clase
Persona
con atributosnombre
yapellidos
y que disponga de un métodosaluda
.Escriba un código ECMA6 que defina una clase
Persona
con atributosnombre
yapellidos
y que disponga de un métodosaluda
.
Preguntas de Repaso de Code Smelling
Defina el término code smelling
¿Que diferencia hay entre un code smell y un bug?
Explique el code smell Duplicated Code
Explique el Switch smell
Preguntas de Repaso de HTML
¿Cual debe ser el valor del atributo
rel
para usar la imagen como favicon?<link rel="_____________" href="etsiiull.png" type="image/x-icon">
Preguntas de Repaso de CSS
¿Que hacen las siguientes pseudo-clases estructurales CSS3?
tr:nth-child(odd) { background-color:#eee; } tr:nth-child(even) { background-color:#00FF66; }
¿Que contiene el objeto
window
en un programa JavaScript que se ejecuta en un navegador?Enumere tres elementos HTML que sean de la categoría
inline
Enumere tres elementos HTML que sean de la categoría
block
¿Cómo se hace para que elementos de la página web permanezcan ocultos para posteriormente mostrarlos? ¿Que hay que hacer en el HTML, en la hoja de estilo y en el JavaScript?
Rellene los estilos para los elementos de las clases para que su visibilidad case con la que su nombre indica:
.hidden { display: ____; } .unhidden { display: _____; }
Preguntas de Repaso de Mocha, Chai
- ExerciseCorrectMatch Failed
- Rellene lo que falta en estas pruebas del código del conversor de temperatura:
var assert = chai.______;
suite('temperature', function() {
test('[1,{a: 2}] == [1,{a: 2}]', function() {
assert._________([1, {a:2}], [1, {a:2}]);
});
test('5X = error', function() {
original.value = "5X";
calculate();
assert._____(converted.innerHTML, /ERROR/);
});
});
var assert = chai.assert;
- Este es un fichero
test/index.html
apto para ejecutar las pruebas con Mocha y Chai en la práctica de la Temperatura. Rellene las partes que faltan:
- Rellene las partes que faltan del fichero con las pruebas TDD en Mocha y Chai para la práctica de la temperatura:
- ¿Como puedo ejecutar las pruebas escritas usando Mocha y Chai usando
el comando
npm test
?. (no se asume el uso de Karma en esta pregunta) Explique como hacerlo.
Preguntas de Repaso de Gulp
- Complete las partes que faltan del siguiente
gulpfile.js
en el que se lleva a cabo una tarea para la optimización (uglify/minify) de la aplicación de la práctica de la temperatura:
Preguntas de Repaso de npm y package.json
¿Con que comando creo el fichero
package.json
?Explique en consiste el versionado semántico/semantic versioning. ¿Cual es el nombre en inglés de los tres números de version? ¿Como cambian?
¿Que se guarda en el campo
"dependencies": {}
depackage.json
?¿Que opción debo añadir al comando
npm install
para que la librería instalada se añada como dependencia en el ficheropackage.json
?¿Que se guarda en el campo
"devDependencies": {}
depackage.json
?¿Que opción debo añadir al comando
npm install
para que la librería instalada se añada como"devDependencies"
en el ficheropackage.json
?Explique que significan en los objetos que describen las dependencias dentro
package.json
las siguientes notaciones:*
latest
¿Cual es la salida? ¿Como actúa el operador
~
?> var semver = require('semver') undefined > semver.toComparators('~1.2.3') [ [ '_______', '______' ] ]
¿Cual es la salida? ¿Como actúa el operador
^
?
> var semver = require('semver')
undefined
> semver.toComparators('^1.2.3')
[ [ '_______', '______' ] ]
Preguntas de Repaso de Karma
Explique como funciona Karma
¿Con que comando puedo crear el fichero de configuración de Karma?
¿Que debemos poner en la entrada
frameworks
de karma para el ejemplo de la temperatura?frameworks: ['_____'],
La librería/plugin
karma-mocha
provee el adapter de Karma para Mocha. ¿Como le pasamos opciones para configurar Mocha desde Karma? Rellene las partes que faltan:
Explique que debe ponerse (y que no) en la sección
files
del fichero de configuración de Karma ¿Donde son cargados dichos ficheros?:files: [ ... ],
Los preprocesadores en Karma nos permiten procesar los ficheros en
files
antes de que sean cargados en el navegador.
preprocessors = {
'**/*.coffee': 'coffee',
'**/*.html': 'html2js'
};
¿Que hace el preprocesador `html2js`? ¿Que hace el preprocesador
`coffee`?
- Complete la función
setup
de las pruebas de la práctica de la temperatura con Mocha, Chai y Karma:
¿Como se llama la variable en la que se guardan los HTML de los ficheros cargados en los navegadores?
- ¿Que es PhantomJS? ¿Como funciona?
Preguntas de Repaso de Ajax
What method of the
req
object returns a boolean value that istrue
if the request’sX-Requested-With
header field isXMLHttpRequest
, indicating the intent to retrieve data from the URL without having to do a full page refresh?.Fill the gap:
app.get('/chuchu', function (req, res) {
var isAjaxRequest = req.______________;
...
}
- La siguiente vista incluye el código JavaScript de un request Ajax:
<!doctype html>
<html>
<head>
<title><%- title %></title>
</head>
<body>
<h1><%- title %></h1>
<ul>
<li><a href="http://jquery.com/" id="jq">jQuery</a>
<li><a href="/chuchu">Visit chuchu!</a>
</ul>
<div class="result"></div>
<script src="https://code.jquery.com/jquery-2.1.3.js"></script>
<script>
$( document ).ready(function() {
$( "#jq" ).click(function( event ) {
event.preventDefault();
$.get( "/chuchu", {nombres: ["juan", "pedro"]}, function( data ) {
$( ".result" ).html( data["answer"]);
console.log(data);
}, 'json');
});
});
</script>
</body>
</html>
Supongamos que el servidor express.js responde al request con:
res.send('{"answer": "Server responds: hello world!"}')
1. ¿Como podemos acceder en el servidor express.js al objeto
`{nombres: ["juan", "pedro"]` enviado desde el cliente como
segundo argumento de `$.get`?
2. ¿Cuando se ejecuta la callback asociada con la llamada a
`$.get`?
3. ¿Que contendrá el parámetro `data` pasado a la callback?
4. ¿Que hace el cuarto parámetro de `$.get`?
- En el código de la práctica de Ajax CSV cuando se hacía click en uno
de los botones con los nombres de los ficheros de ejemplo se
ejecutaba en el cliente la función
dump
:
const dump = (fileName) => {
$.get(fileName,function (data){
$("#original").val(data);
});
};
¿En que ruta/middleware del servidor express son servidos estos
requests?. Explique el funcionamiento de este código.