Tableless

Busca Menu

Exercícios Simples de JavaScript para Entrevista

Seja o primeiro a comentar por

Qualquer um pode aprender teoria lendo posts de blogs, mas muitas pessoas nunca a entendem. Então para ter certeza que o(a) candidato(a) realmente entende sobre o tópico que ele(a) está falando, é uma boa ideia testar o seus conhecimentos através de exercícios. Exercícios não devem demorar muito e eles podem mostrar o nível de proficiência do candidato imediatamente.

Estes são alguns exercícios que podem ser aplicados em entrevistas.

Contexto(call, apply)

Essa é a forma que queremos usar “someFn”. O(a) candidato(a) deve implementá-la:

var result = someFun({ someProperty: 'interview' }, function() {
	console.log('This pointing to'. this);
});

console.log('Result is', result);

// Resultado esperado
This pointing to { someProperty: 'interview' }
Result is 1

Solução:

var someFn = function(obj, cb) {
	cb.call(obj);
	return 1;

Adicional

Você pode modificar a função para checar se o(a) candidato(a) sabe como usar o “apply”.

var result = someFn({ someProperty: 'interview' }, function (param1, param2) {
	console.log('This pointing to', this);
	console.log('Param 1 is', param1);
	console.log('Param 2 is', param2);
}, ['cool', 'interview']);

console.log('Result is', result);

// Resultado esperado
This pointing to { someProperty: 'interview' }
Param 1 is "cool"
Param 2 is "interview"
Result is 1

Solução:

var someFn = function (obj, cb, params) {
	cb.apply(obj, params);
	return 1;
}

Prototype e Iteração

Definir um método nativo chamado “each” para iterar em um array, com a opção de passar o contexto como segundo argumento.

var arr = [1, 2, 3];
arr.each(function (arrayItem, counter) {
	console.log('index', counter);
	console.log('item', arrayItem);

	arr[counter] = arrayItem + 1;
}, this);

Solução:

Array.prototype.each = Array.prototype.each || function (cb, context) {
    for (var i = 0; i < this.length; i++) {
        cb.call(context || this, this[i], i);
    }
};

Escopo

Definir “someFn” que irá funcionar da seguinte maneira:

var counter = someFn(1);
console.log('First call', counter(3));
console.log('Second call', counter(1));
console.log('Third call', counter(5));

// Resultado esperado
First call 4
Second call 5
Third call 10

Solução:

var someFn = function (start) {
	var private = start;

	return function (increment) {
		private += increment;

		return private;
	}
}

Traduzido de: http://goschevski.com/simple-javascript-interview-exercises/

Publicado no dia