Что бы спросить по JavaScript на интервью ?

vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Что бы спросить по JavaScript на интервью ?

Post by vopros »

nightmare2 wrote:
vopros wrote:а что если спросить так:
допустим есть категории товаров и когда кликаем на категорию, ажаксом получаем список товаров.
Есть такой код
function getItemsForCategory(event) {
var categoryId = getCategoryId(event); // let's say we got id somehow from the event

$.ajax({
url: 'serviceUrl/items/'+categoryId,
success: onSuccess
})
}

function onSuccess(response) {
console.log("response for catergory id:");
}
response это типа json [{},{},{}] - список товаров.
Но вот засада, мы не знаем для какой именно категории пришел ответ.
Как можно передать categoryId в обработчик onSuccess ?

Не слишком ли тупой вопрос по вашему ?
Tak?

Code: Select all

function getItemsForCategory(event) {
    var categoryId = getCategoryId(event); // let's say we got id somehow from the event

    $.ajax({
        url: 'serviceUrl/items/' + categoryId,
        success: function onSuccess(response) {
            console.log("response for catergory id: " + categoryId);
        }
    })
}
не плохо, да.
это один из вариантов, другой более интересный, что если моя onSuccess - reusable function, и я не хочу весь код из нее копировать в getItemsForCategory
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

vopros wrote:это один из вариантов, другой более интересный, что если моя onSuccess - reusable function, и я не хочу весь код из нее копировать в getItemsForCategory
Ну тогда может так?

Code: Select all

function getItemsForCategory(event) {
    var categoryId = getCategoryId(event); // let's say we got id somehow from the event

    $.ajax({
        id : categoryId,
        url: 'serviceUrl/items/' + categoryId,
        success: function(response) {
            onSuccess.call(this, response);
        }
    })
}

function onSuccess(response) {
    console.log("response for catergory id: " + this.id);
}
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: Что бы спросить по JavaScript на интервью ?

Post by rzen »

Code: Select all

function getItemsForCategory(event) {
    this.categoryId = getCategoryId(event); // let's say we got id somehow from the event

    $.ajax({
        id: categoryId,
        url: 'serviceUrl/items/' + categoryId,
        context: this,
        success: onSuccess
    })
}

function onSuccess(response) {
    console.log("response for catergory id: " + this.categoryId);
}
или даже более радикально (правда имейте ввиду что в этом случае скалярное значение categoryId будет забоксировано)

Code: Select all

function getItemsForCategory(event) {
    $.ajax({
        id: categoryId,
        url: 'serviceUrl/items/' + categoryId,
        context: getCategoryId(event),
        success: onSuccess
    })
}

function onSuccess(response) {
    console.log("response for catergory id: " + this);
}
Don't code today what you can't debug tomorrow.
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

rzen wrote:

Code: Select all

function getItemsForCategory(event) {
    $.ajax({
        id: categoryId,
        url: 'serviceUrl/items/' + categoryId,
        context: getCategoryId(event),
        success: onSuccess
    })
}

function onSuccess(response) {
    console.log("response for catergory id: " + this);
}
Красиво, хоть и с ошибкой :-)
Может так?

Code: Select all

function getItemsForCategory(event) {
    var categoryId = getCategoryId(event);  // let's say we got id somehow from the event

    $.ajax({
        id: categoryId,
        url: 'serviceUrl/items/' + categoryId,
        context: categoryId,
        success: onSuccess,
        error: onSuccess
    })
}

function onSuccess(response) {
    console.log("response for catergory id: " + this);
}
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: Что бы спросить по JavaScript на интервью ?

Post by rzen »

ай да, перестарался :)
Don't code today what you can't debug tomorrow.
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Что бы спросить по JavaScript на интервью ?

Post by vopros »

Я так понимаю, ваши ответы с context: для уровня эксперт.
ув эксперты, а как бы вы оценили такой ответ ?

Code: Select all

function getItemsForCategory(event) {
	var categoryId = getCategoryId(event);	
	
	$.ajax({		
		url: 'serviceUrl/items/'+categoryId,
		success: function(response) { onSuccess(response, categoryId); }
		
	})
}

function onSuccess(response, id) {	
	console.log("response for catergory id:"+id);
}
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: Что бы спросить по JavaScript на интервью ?

Post by rzen »

это как раз частный случай того что называется currying, годится но не оптимально.
Don't code today what you can't debug tomorrow.
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

vopros wrote:Я так понимаю, ваши ответы с context: для уровня эксперт.
ув эксперты, а как бы вы оценили такой ответ ?

Code: Select all

function getItemsForCategory(event) {
	var categoryId = getCategoryId(event);	
	
	$.ajax({		
		url: 'serviceUrl/items/'+categoryId,
		success: function(response) { onSuccess(response, categoryId); }
		
	})
}

function onSuccess(response, id) {	
	console.log("response for catergory id:"+id);
}
Я хотел так написать, но подумал, что это очень просто. :D
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

rzen wrote:это как раз частный случай того что называется currying, годится но не оптимально.
А че это такое?
Объясните по простому. :-)
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Что бы спросить по JavaScript на интервью ?

Post by vopros »

да и почему не оптимально
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

vopros wrote:да и почему не оптимально
Ну, например, если в будущем вам надо будет передать в onSuccess более одного параметра.
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: Что бы спросить по JavaScript на интервью ?

Post by rzen »

nightmare2 wrote:
rzen wrote:это как раз частный случай того что называется currying, годится но не оптимально.
А че это такое?
Объясните по простому. :-)
это когда функция путём применения третьей меры устрашения превращается в другую которая вызывает первую с дополнительными параметрами заданными в процессе устрашения (называемым currying).

допустим есть функция

Code: Select all

function multi (a,b) { return a * b; }
curry этой функции делается (например) так:

Code: Select all

var multiBy10 = multi.curry(10);
это примерно эквивалентно (то что в примере выше) таком коду

Code: Select all

var multiBy10 = function (a) { return multi(a, 10); }
но делается хитрее так чтобы количество параметров могло быть любым

Code: Select all

Function.prototype.curry = function() {
    var fn = this, args = Array.prototype.slice.call(arguments);
    return function() {
      return fn.apply(this, args.concat(
        Array.prototype.slice.call(arguments)));
    };
  };
http://ejohn.org/blog/partial-functions-in-javascript/
Don't code today what you can't debug tomorrow.
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: Что бы спросить по JavaScript на интервью ?

Post by rzen »

vopros wrote:да и почему не оптимально
лишнее вложение контекстов. потери пренебрежимы, конечно.
Don't code today what you can't debug tomorrow.
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Что бы спросить по JavaScript на интервью ?

Post by vopros »

nightmare2 wrote:
vopros wrote:да и почему не оптимально
Ну, например, если в будущем вам надо будет передать в onSuccess более одного параметра.
но подход с контекст этой проблемы тоже не решает.
либо мне надо создать новый объект для контекста и туда все впихнуть, либо передать тот же объект через анонимную функцию.
(еще есть вариант с псевдо параметром arguments для таких случаев, но он не красивый по моему)
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

rzen wrote:
nightmare2 wrote:
rzen wrote:это как раз частный случай того что называется currying, годится но не оптимально.
А че это такое?
Объясните по простому. :-)
это когда функция путём применения третьей меры устрашения превращается в другую которая вызывает первую с дополнительными параметрами заданными в процессе устрашения (называемым currying).

допустим есть функция

Code: Select all

function multi (a,b) { return a * b; }
curry этой функции делается (например) так:

Code: Select all

var multiBy10 = multi.curry(10);
это примерно эквивалентно (то что в примере выше) таком коду

Code: Select all

var multiBy10 = function (a) { return multi(a, 10); }
но делается хитрее так чтобы количество параметров могло быть любым

Code: Select all

Function.prototype.curry = function() {
    var fn = this, args = Array.prototype.slice.call(arguments);
    return function() {
      return fn.apply(this, args.concat(
        Array.prototype.slice.call(arguments)));
    };
  };
http://ejohn.org/blog/partial-functions-in-javascript/
Спасибо. :-)
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

vopros wrote: но подход с контекст этой проблемы тоже не решает.
либо мне надо создать новый объект для контекста и туда все впихнуть, либо передать тот же объект через анонимную функцию.
(еще есть вариант с псевдо параметром arguments для таких случаев, но он не красивый по моему)
Ну да, если в контекст поместить не id, a объект, то его можно расширять без добавления параметров в функции onSuccess.
Больше никакой пользы я тут не вижу.
Но я не эксперт.
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
User avatar
Ljolja
Уже с Приветом
Posts: 2924
Joined: 01 Apr 2004 04:22

Re: Что бы спросить по JavaScript на интервью ?

Post by Ljolja »

vopros wrote:хорошо, убедили, любой вопрос по жабаскрипт, любая домохозяйка может выгуглить за 5 минут.
Если знает, то не показатель, если не знает, то выгуглит на работе.
пойду спрошу умеет ли он гуглить.
ну вобшем-то да, примеров сейчас более, чем достаточно :oops: . the bottleneck is to figure out what is the question :wink:
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)
mr boombastic
Уже с Приветом
Posts: 150
Joined: 18 May 2012 20:00

Re: Что бы спросить по JavaScript на интервью ?

Post by mr boombastic »

IContentProvider wrote:Вообще, вчера прочитала какую-то цитату, которую не могу найти. Вкратце, один хирург сказал что ему заняло 10 лет обучиться КАК производить операции, еще 10 лет, чтобы понять КОГДА, и еще 10 лет, чтобы понять когда их НЕ производить.

Чтобы выяснить КАК применять closure достаточно 5 минут почитать (дам еще 10 минут почитать про как применять ajax с jquery и 1 минуту сгуглить setTimeout(), еще полчаса-час почитать примеры). Вы уже решили за кандидата ГДЕ применять. Какова ценность упражнения, где заранее предполагается ("додумывается"), что нужно применить то-то и то-то? Выяснить насколько прилежно студент кандидат подготовился к экзамену интервью? 10 минут - это хорошее время, чтобы извлечь из краткосрочной памяти, то что там лежит. Понятно, что никто не требует совершенства... но вы же отдатите пальму первенства тому, кто ответит без запинки и даст "the answer I expected"?

(к слову, я не помню наизусть что функция называется setTimeout(), хотя знаю что неоднократно мною применялась "эээ какой-то полезный таймер с callbacks". Зато есть нужная закладка)
большинство людей именно так и интервьюят и правильный ответ это почти _всегда_ "the answer he/she expected". Кандидатов много, всегда найдётся тот который ответит "правильно". Насколько я понял, vopros просто хочет быстро понять - делал ли кандидат front-end/JS или нет. Допустим, при таком подходе, меня бы он отсеял (и был бы прав) хотя и делал я немного javascript/NodeJS и даже исследовал как binding написать к ноде что бы тот работал с нашим домашним pub/sub middleware. Но не front end. Хотя в резюме я не пишу front end related frameworks. Но спросил бы они меня про closure,curry,prototype inheritance - ответил бы.
mr boombastic
Уже с Приветом
Posts: 150
Joined: 18 May 2012 20:00

Re: Что бы спросить по JavaScript на интервью ?

Post by mr boombastic »

variable hoisting ещё очень актуальный вопрос.
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

mr boombastic wrote:большинство людей именно так и интервьюят и правильный ответ это почти _всегда_ "the answer he/she expected". Кандидатов много, всегда найдётся тот который ответит "правильно". Насколько я понял, vopros просто хочет быстро понять - делал ли кандидат front-end/JS или нет. Допустим, при таком подходе, меня бы он отсеял (и был бы прав) хотя и делал я немного javascript/NodeJS и даже исследовал как binding написать к ноде что бы тот работал с нашим домашним pub/sub middleware. Но не front end. Хотя в резюме я не пишу front end related frameworks. Но спросил бы они меня про closure,curry,prototype inheritance - ответил бы.
Возможно вы правы, но я лично бы взял того, кто думать умеет и хочет работать, даже если у него нет опыта с чем-нибудь.
Если это команда, то у нее уже выработаны какие-то бест практис и методика, вот чел. и притрется.
A возьмете какого-нибудь гуру со своими видением и не факт, что на пользу пойдет.
К тому же, вариант, что он быстро слиняет в другое место весьма высок.
Я в том смысле, что кандидат должен подходит по многим параметрам, а не только по скилзам.
Я много раз замечал, что коллега-интервиевер пытается выяснить что я буду делать, если не знаю что делать. :D
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

mr boombastic wrote:variable hoisting ещё очень актуальный вопрос.
Кстати, важная штука и отличается от языков типа Java/C.
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: Что бы спросить по JavaScript на интервью ?

Post by rzen »

на прошлом интервью на каверзный вопрос мне чувак прямо ответил мол я не знаю но если такое когда нибудь мне встретится (непрозрачно намекая что вопрос был очень искусственный) то я напишу кусочек кода и проверю вживую.

собссно именно чтобы понять как человек среагирует на непонятности и конструируются подобные вопросы.

по результатам интервью чувак был принят, правда не попал к нам по другим причинам.
Don't code today what you can't debug tomorrow.
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

rzen wrote:на прошлом интервью на каверзный вопрос мне чувак прямо ответил мол я не знаю но если такое когда нибудь мне встретится (непрозрачно намекая что вопрос был очень искусственный) то я напишу кусочек кода и проверю вживую.

собссно именно чтобы понять как человек среагирует на непонятности и конструируются подобные вопросы.

по результатам интервью чувак был принят, правда не попал к нам по другим причинам.
А не поделитесь каверзными вопросиками, если не секрет конечно.
Мне очень хочется работу сменить. :roll:
Что надо знать, по минимуму (js/ui), чтобы на кандидата хотя бы обратили внимание?
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Что бы спросить по JavaScript на интервью ?

Post by vopros »

mr boombastic wrote: большинство людей именно так и интервьюят и правильный ответ это почти _всегда_ "the answer he/she expected". Кандидатов много, всегда найдётся тот который ответит "правильно". Насколько я понял, vopros просто хочет быстро понять - делал ли кандидат front-end/JS или нет. Допустим, при таком подходе, меня бы он отсеял (и был бы прав) хотя и делал я немного javascript/NodeJS и даже исследовал как binding написать к ноде что бы тот работал с нашим домашним pub/sub middleware. Но не front end. Хотя в резюме я не пишу front end related frameworks. Но спросил бы они меня про closure,curry,prototype inheritance - ответил бы.
Ну допустим вас бы я не отсеил. У чувака все резюме было пропитано extjs, js, web dev. Я его еще переспросил на всяк случай и он подтвердил, что он активно работатет с js.
на преведенный выше вопрос, кандидат сходу предложил global variable. Но уточнил что это плохо, правда что именно плохо, толком объяснить не мог.
Из других вариантов он предложил каким то образом распарсить параметры респонса и оттуда возможно достать id.
Дело не в том что ответ не соответствовал моему, а в том, что он не соответствует резюме.
Было бы у него немного js, тогда мы его бы вообще не спрашивали про него, это не основной скилз. Или вариант с global var устроил бы вполне.
Кстати у чувака ms in cs and phd mechanical eng. Но и на вопрос коллеги про сортировку он тоже не смог ответить.
И так почти на каждый вопрос. Короче все зарубили его единогласно по всем пунктам, даже его земляки китайцы.
завтра ждем в гости другого, резюме тоже пестрит jquery, jquery-ui и тд и тп. Американец.
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Что бы спросить по JavaScript на интервью ?

Post by nightmare2 »

vopros wrote:...Из других вариантов он предложил каким то образом распарсить параметры респонса и оттуда возможно достать id...
Что, даже не предложил вариант onSuccess с параметром id?
Для этого даже js не обязательно знать.
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!

Return to “Работа и Карьера в IT”