Тестовые задания по JavaScript
Поделитесь интересными тестовыми заданиями и ссылками на них ;)
Ну там, которые на собеседованиях... |
готовишь новый раздел "ответы на тестовые задания, трудоустройтесь куда захотите"? х)
|
Хоть и не тесты но фишки, о которых как оказалось знают далеко не все http://code.google.com/p/jslibs/wiki/JavascriptTips
|
Кроме тестовых заданий Яндекса больше никаких не встречал.
http://company.yandex.ru/job/vacancies/ Это очень хорошо, что Вы об этом спрашиваете. На сайте javascript.ru очень не хватает фишек, которые реально используются и нужны. К тестовым заданиям могу добавить вот это. 1 - Написать все известные Вам методики реализации ООП. 2 - JSONP. |
Из личного опыты:
1. У вас книжный магазин. Внутри стоят 10 полок с книгами, одна за другой. Первая полка с книгами находится прям напротив входа. Каждый день поступают новые книги, что-то покупается. Как вы их расположите по полкам? казалось бы, причем тут JavaScript... 2. Из мейла.ру. Создать средствами HTML и CSS квадрат, равномерно залитый 4 разными цветами. Границы цветов расположены по диагонали. Ещё было одно тестовое задание от конторки, название которой я уже не помню. Суть была в том, что бы сверстать и запрограмировать интерфейс, включающий в себя модальное окно, табы и ещё некую структуру данных. Т.е. с нуля отдать им рабочую страницу. Когда пришло т.з., к нему прилагались скрины какой-то виндовой программки. Ну т.к. это тестовое задание, с интерфейсом особо не заморачивался и сделал по-своему. После отправки готового решения приходит ответ, типа того: "Вы сделали по своему дизайну, вот вам наш (уже psd, проработанный как надо) дизайн. Будте добры, заверстайте как надо". В общем, они были посланы нах :-E |
Цитата:
|
Цитата:
|
Цитата:
Transport, Car, SuperCar Car наследует Transport. SuperCar наследует Car. Реализовать наследование как можно большим количеством способов. |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Меня это просили сделать. А я в то время не был готов к этому вопросу. Впрочем как и сейчас. Так как использую готовую функцию extend в ExtJS. |
> Написать все известные Вам методики реализации ООП.
а так ооп-а типа нет? х) если речь о методах определения, инстанцирования и наследования, то их не меньше десятка.. |
> mixins, которые не есть наследование
и чем же они являются как не наследованием? |
Цитата:
Prototype chaining,Temporary constructor, Deep copy, Parasitic inheritance и прочее. |
вопрос из разряда: выпишите наибольшее число простых чисел
|
Цитата:
PS: Parasitic inheritance |
:lol:
crockford instanceof Guru;//<- false :haha: |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
только странно, при чем тут джяваскрипт <style> div { border : 70px black solid; border-color: red yellow gray blue; width : 1px; } </style> <div></div> |
Цитата:
|
Цитата:
Вот небольшой пример - очень некрасивой реализации ООП. function Transport(config){ var config = config || {}; this.type = "Транспорт"; this.wheel = 0; this.maxVelocity = 0; this.velocity=0; this.deltaVelocity=0; for(var p in config){ this[p]=config[p]; } } Transport.prototype = { engine: 'никакой', isDrive:false, faster:function(){ if(this.isDrive){ if(this.velocity<this.maxVelocity){ this.velocity+=this.deltaVelocity; } else{ console.log(this.type+" быстрее ехать не может"); } } else{ console.log("Необходимо завести машину"); } }, slower:function(){ if(this.velocity>0){ this.velocity-=this.deltaVelocity; } else{ console.log("Медленее ехать нельзя"); } }, drive:function(insideInvoke){ var me = this; if(!insideInvoke && me.isDrive){ return; } if(!insideInvoke){ console.log(me.type+" заведена"); me.isDrive = true; } if(me.isDrive){ console.log('Едит '+me.type+' на '+me.wheel+' колесах. Скорость '+me.velocity+'...'); setTimeout(function(){ me.drive(true); },1000); } }, stop:function(){ this.isDrive = false; } }; //var t = new Transport(); //t.drive(); function Car(config){ var config = config || {}; this.type = "Машина"; this.wheel = 4; this.maxVelocity = 60; for(var p in config){ this[p]=config[p]; } Car.superclass.constructor.call(this); } Car.prototype = new Transport(); Car.superclass = Transport.prototype; Car.prototype.deltaVelocity=10; //var c = new Car(); function SuperCar(config){ var config = config || {}; this.type = "СуперМашина"; this.wheel = 4; this.maxVelocity = 100; for(var p in config){ this[p]=config[p]; } Car.superclass.constructor.call(this); } SuperCar.prototype = new Car(); SuperCar.superclass = Car.prototype; SuperCar.prototype.deltaVelocity=20; var sc = new SuperCar(); Если не лень. Скопируйте и запустите. Поуправляйте Супер Машиной в консоле через sc.drive(); sc.faster(); sc.slower(); А потом, просто для себя попробуйте реализовать функцию extend - без подсказок из интернета(на собеседовании же не будет возможности пользоваться инетом). для вот такого наследования Заметка - вообще полностью весь код надо придумать самому. Поэтому это итак очень большая подсказка. У Вас есть три объекта A,B,C B наследует A, ну а C наследует B. C = extend(B,{ constructor: function(config){ applyIf(config,{ h:6 }); B.superclass.constructor.call(this, config); }, b:4, c:5 }); function applyIf(o, c){ if(o){ for(var p in c){ if(!isDefined(o[p])){ o[p] = c[p]; } } } return o; } function isDefined(v){ return typeof v !== 'undefined'; } В итоге при вызове console.log(new C({b:8,h:5})); Должен получиться объект { b:8, h:5, c:5 } Не надо меня спрашивать подробности, это я так набросал. Пример и реализацию на собеседовании Вам нужно сделать самому. Сразу скажу, что я не сделал это. |
Цитата:
Смотрю на Number.MAX_VALUE и думаю... |
имхо extend() должен копировать только собственные свойства обьекта.
|
Цитата:
alert ( Number.MAX_VALUE < Number.POSITIVE_INFINITY ) |
Цитата:
|
Цитата:
melky, fuck yeah, я бы не догадался как это сделать. Цитата:
|
на бумажке, без компьютера..
|
Похоже, новое тестовое задание для сайта готова. "Прежде чем приступить к изучению JS - выпишите все простые числа на бумажку. Потом приступайте к изучению JS")
|
Цитата:
|
Собеседование в DataArt
Ребята, кто был на собеседовании в DataArt? Говорят, что там задание на 4-5 часов, это правда? Поделитесь пожалуйста, что ж такое за тестовое, которое можно делать на собеседовании в течении 4 часов? :blink:
|
Цитата:
если интересно, сходите и узнайте |
Господа, добрый день, что на это скажете?
Я не могу понять, как подобное реализовать, уже запутался сам, кто поможет может? Спасибо за помощь и ваше драгоценное время. /* Есть REST service предприятия, со следующими URIs: a) [url]www.megafirm-catalog.com/employees[/url] - возаращает массив id всех сотрудников b) www.megafirm-catalog.com/employee/{id}, где {id} - id сотрудника. Возаращает: name, bossId, departmentId c) www.megafirm-catalog.com/department/{id}, где {id} - id отдела. Возвращает: name, employeesCount Условия: У каждого сотрудника есть босс (кроме одного сотрудника, который является самым большим боссом). Задание: а) Разработать структуру данных для описания предприятия, его отделов и сотрудников работающах там. (Применить принцип инкапсуляции) b) Разработать структуру данных (систему классов) предприятия. с) Заполнить структуру данных предприятия, исспользуя REST service. d) Вывести на экран всех сотрудников предприятия отсортированных по названиям (name) отделов в которых они работают. e) Реализовать возможность увольнения и перевода сотрудника в подчинение другому боссу (наиболее оптимальным способом) f) Вывести на экран всех сотрудников предприятия в иерархическом порядке (начиная с самого большого босса, далее его непосредственных подчиненных, потом подчиненных подчинненных и т.д. по иерархии) */ |
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги. Для таких сообщений предназначен раздел форума "Работа". Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела. |
Цитата:
|
У тебя в задании всё описано, но ок, для начала стучишься по своим урлам и принимаешь данные которые они тебе отдают, затем придумываешь как лучше эти данные хранить в памяти ну дальше начинаешь писать код.
|
Часовой пояс GMT +3, время: 22:17. |