Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 16.02.2012, 06:52
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Я предлагаю своеобразную игру: один здешний человек собеседует другого, за этим могут наблюдать (слушать) другие люди, конечно это всё бесплатно. Результат: обоснованное ЧСВ собеседуемого или указание на ошибки и недостатки.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #52 (permalink)  
Старый 16.02.2012, 09:11
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Подведем итоги:

Пойдем от самого очевидного и не спортивного

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

1.
var foo = function () {
    var a = 1;

    function b() {
        return 2;
    }

    this.a = a;
    this.b = b;

}();

alert([a, b()]) //1, 2


Это то что должно прийти в голову вторым (простая перестановка):
2.
var foo = function () {
    var a = 1;

    function b() {
        return 2;
    }
    c = a;
    d = b;
}();

a = c;
b = d;

alert([a, b()]);


Это уже более грамотный ответ, т.к. не создаются глобальные переменные (хотя b и указывает на window):
3.
var foo = function () {
    var a = 1;

    function b() {
        return 2;
    }
    return {
        a : a,
        b : b
    };
}();

a = foo.a;
b = foo.b;

alert([a, b()]);


Незнаю почему, но только один человек догадался использовать toString/toSource, ведь это очевидно, вспомните тесты Яндекса
4.
var foo = function () {
    var a = 1;

    function b() {
        return 2;
    }
};

eval(foo.toString().match(/{([\s\S]+)}/)[1])

alert([a, b()]) //1,2

5.
Эталонное и самое неочевидное решение, использовать - Multiple-value returns из JavaScript 1.7 (работает начиная с Firefox 2).

var foo = function () {
    var a = 1;

    function b() {
        return 2;
    }
    return [a, b];
};

[a, b] = foo();

alert([a, b()]); //1, 2


Объсню почему последнее решение было взято за эталон.
А дело в том, то Multiple-value returns включены в будущий стандарт ES6, спецификация которого уже давно лежит на офсайте. Тем более те кто писал на Python или расширения для FF должны были это как-никак вспомнить.

Ну а так как товарищ vflash сказал, что общение с ним за 10к/час полезней всяких конференций (на которых уже второй год эту тему мусолят), последний вариант, самое то.

Появился стимул к прочтению нового стандарта?

Последний раз редактировалось monolithed, 16.02.2012 в 09:23.
Ответить с цитированием
  #53 (permalink)  
Старый 16.02.2012, 09:34
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

monolithed,
гениально, браво. monolithed в презеденты

// как из мухи сделать слона
var муха = 'слон';
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #54 (permalink)  
Старый 16.02.2012, 09:54
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от vflash
как из мухи сделать слона
Обращайтесь
Ответить с цитированием
  #55 (permalink)  
Старый 16.02.2012, 10:36
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Можно я прокомментирую(так сказать разбор полетов), хотел вчера, но форум трет сообщения, а второй раз набивать лень. Думаю, все могут прокомментировать решения тоже.

Скажу честно мне пришли в голову первые 4 варианта. Первые два я послал monolithed. Третий не стал посылать, хотя в голову он пришел первым, потому что разговор шел про функции, мне и первый то казался не совсем правильным.

По поводу четвертого: Это "блин уродство" мне пришло в голову, но было отброшено из-за его некрасивости что ли

Пятый конечно в голову не пришёл, т.к. Стандартная мысль - кроссбраузерность.

Я например никогда не буду не брать человека, только потому, что он не пройдет подобный тест или ответит на вопрос не правильно типа:
Сообщение от vflash Посмотреть сообщение
за неправильный ответ на (typeof null) шансы пройти собеседование стремиться к нулю.
Лично моё мнение: тесты должны быть на добровольной основе и только ради интереса - как игра, но ни как не показатель качеств человека. Для проверки человека существует понятие: Портфолио.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #56 (permalink)  
Старый 16.02.2012, 10:47
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Ну я отправил в личку monolithed первый вариант, хотя второй мне тоже пришел в голову но не стал его отправлять из-за бональности, слишком уж он мне бональным показался. Остальные варианты и не продумывал, то есть далее я уже не стал сидеть придумывать что-то.

По поводу пятого я и не знал что так вообще можно делать, ибо так же как и Gozar, думаю в первую очередь о кроссбраузерности. А еще не дописанные стандарты я никогда не читаю, предпочитаю читать их после финального выхода.

Сообщение от Gozar
Я например никогда не буду не брать человека, только потому, что он не пройдет подобный тест или ответит на вопрос не правильно типа:
Согласен.
Ответить с цитированием
  #57 (permalink)  
Старый 16.02.2012, 12:05
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

monolithed,
в чём смысл задачи? Что можно узнать о кандидате, дав ему эту задачу? Какие знания проверить?
Ответить с цитированием
  #58 (permalink)  
Старый 16.02.2012, 12:41
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от Kolyaj
Что можно узнать о кандидате, дав ему эту задачу? Какие знания проверить?
узнать
читает ли он регулярно javascript.ru/forum
Ответить с цитированием
  #59 (permalink)  
Старый 16.02.2012, 13:20
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Kolyaj
в чём смысл задачи?
Сообщение от monolithed
Если уж пошел такой разговор, и дабы развеять сомнения о вашей компетентности для соискателей, могли бы вы решить такое простое задание?:
Как я понял, на собеседованиях бывают задачи разного уровня, а т.к. vflash берет на себя роль экзаменатора виртуального работодателя, то в его базе знаний должны быть ответы и на такие задачи.

Собственно в уровне компетенции vflash не сомневаюсь, но вот выставленный тариф должен как-то подтверждать его уровень знаний.
Ответить с цитированием
  #60 (permalink)  
Старый 16.02.2012, 13:40
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от monolithed Посмотреть сообщение
выставленный тариф должен как-то подтверждать его уровень знаний.
Логично. Его уровень знаний остался загадочным.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск