• Что происходит когда вызываешь Object.apply(this ) в конструкторе "класса"?

    Думаю, этот код выдран откуда-то вами, но могу предположить вот что. Есть у вас обычный "класс".

    var X = function() { }
    X.prototype = {}

    Инициализировать вы его будете вот так: var x = new X(arg1, arg2, arg3, ...), что не всегда удобно. Можно, например, вот так: var x = make(X, [arg1, arg2, arg3]).

    Для этого можно сделать обертку:

    var make = function(maker, args) {
        var X = function() {
            maker.apply(this, args);
        }
        X.prototype = maker.prototype;
        return new X();
    }
    Ответ написан
    Комментировать
  • Взаимозаменяем ли switch с if в JavaScript?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Ситуация, в которой есть смысл сравнивать эти инструкции — проверка на соответствие множеству взаимоисключающих условий.

    if else
    Обрабатываются все условия методично, друг за другом.
    switch
    Каждый case — точка входа в блок инструкций.

    Если сравнивать быстродействие, то webkit покажет почти одинаковые результаты, в Gecko производительность выше у switch, но не кардинально (на 20-30%), что не принципиально.

    А вот логика у этих инструкций разная. Это заметно, если для некоторых значений требуется выполнить одни и те же инструкции. В этом случае написанные подряд case могут быть удобней, чем составная проверка в if. Кроме того, после выполнения входа выполнение инструкций продолжается либо до инструкции break, либо до окончания инструкции switch. И тут у switch появляются дополнительные возможности.

    Следует также учесть, что в инструкции switch выполняется проверка с учётом типа (===), что отличает её от if, в которой проверяться может хоть приведённое значение (==), хоть чёрт в ступе. Значения case должны представлять собой примитивы (выражения, в результате выполнения которых подставляются примитивы).

    Пример if
    if (x === 'a') {
    	//Только для 'a'
    } else if (x === 'b' || x === 'c' || x === 'd') {
    	//Только для 'b', 'c', 'd'
    } else {
    	//Для остальных
    }

    Пример switch
    switch (x) {
    	case 'a':
    		//Только для 'a'
    		break;
    	case 'b':
    	case 'c':
    	case 'd':
    		//Только для 'b', 'c', 'd'
    		break;
    	default:
    		//Для остальных
    }

    А вот такое возможно только с использованием switch
    switch (x) {
    	case 'a':
    		//Только для 'a'
    	case 'b':
    		//Только для 'a', 'b'
    	case 'c':
    	case 'd':
    		//Только для 'a', 'b', 'c', 'd'
    		break;
    	default:
    		//Для остальных
    }
    Ответ написан
    2 комментария
  • Как узнать определена ли функция в js?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    jQuery плагины, все как один, основаны на расширении прототипа $.
    Поэтому, если у вас нет в любом объекте jQuery метода из подключённой библиотеки, значит вы её не подключили.

    А вызвать код, способный привести к выбрасыванию исключения, можно с помощью:
    try {
    	//тут возможно проблемный код
    } catch (error) {
    	//а тут то, что делать, когда код выше вызвал ошибку
    }
    Ответ написан
    1 комментарий
  • Как верстать блоки непрямоугольной формы?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    linear-gradient() с наклоном (прямо в самом элементе) — IE 9+
    border у псевдоэлементов — IE 7+
    transform:skew() (также лучше у псевдоэлементов) — IE 9+
    transform:skew() (у самого элемента, а внутренний элемент скосить в обратную сторону) — IE 9+
    SVG (можно фоном, можно напрямую) — IE 9+

    Update: по подсказке lioklio
    transform:rotate() (у псевдоэлементов с увеличенной шириной и обрезкой в одном из предков) — IE 9+
    Ответ написан
    6 комментариев
  • За счет чего Тостер может составить конкуренцию русскоязычному Stackoverflow?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Воспользуюсь случаем передать привет своей семье написать пару замечаний.

    1. Убрать отметку ответа решением
    а) Не с руки бегать за пользователями, задающим вопросы, с требованием «анугад цени время других». Ни модераторам, ни отвечающим. В конце концов, расчёт на поисковую выдачу и долгую жизнь тем.

    б) Зачастую знания и умения спрашивающего не дают ему возможность оценить верность ответа. Если учесть, что нередко правильные ответы даются с примесью WTF, то неумеренное эго автора вопроса бывает сильно уязвлено, и верный ответ остаётся за бортом. Не менее редко решением выбираются глупые ответы.
    Думаю, FanatPHP может рассказать куда больше:)

    Пример: Как работает свойство display с его разными значениями?
    Хоть кол на голове теши — что проще, то и верно.

    2. Ввести минусование ответов
    Не всем, а как на стеке — только с рейтингом не менее ... (скажем, >20 по тэгу). Чтобы тупые ответы опускались вниз. Может, и скрывать ответы при наборе ... (скажем, -5) отрицательных отметок.

    3. Рейтинг
    Нередко встречаю умных и грамотных людей, не имеющих времени на надрачивание рейтинга. Как вариант, просто недавно зарегистрировавшиеся участники. Нужен механизм оценки «авторитетов» (в хорошем смысле этого слова) для повышения рейтинга.

    4. Оценка комментариев
    Достаточно часто комментарии дополняют ответ, делают его более объёмным, и заслуживают своей оценки. Почему нет возможности оценить такой вклад?

    5. Ввести тэги по вопросам
    Зачастую вопросы называют так, что найти их или очень трудно, или просто невозможно.
    Пример: Как отследить появление новых элементов в DOM?
    В итоге люди тратят время, в то время как ответы уже есть на Тостере Как отловить создание нового IFrame на странице?

    Можно предлагать при публикации вопроса список тэгов и это (возможно) даст возможность найти ответ на вопрос до его опубликования. После публикации тэги могут выбрать остальные.
    Другая польза от тэгов — поиск для повторных вопросов (см. ниже).

    6. Аналогичный вопрос
    Если ответ на подобный вопрос уже есть на Тостере, пользователи могут указать их. Такой блок должен находиться непосредственно рядом с вопросом.

    7. Плюсы для отвечающих
    Почему бы не использовать связь с хабром для раздачи плюшек отвечающим? Например, членство, карму etc.

    8. Библиотека решений
    Иногда кажется, что грамотный и хорошо оформленный ответ просто тонет в куче мусора и нет никакого смысла ни в расписывании хода мыслей, ни в оформлении.
    Пример #1: CSS: Почему происходит смещение изображения при line-height идентичной высоте блока?
    Пример #2: Почему при добавлении тега appendChild'oм, контент не отображается?
    Пример #3: Разница между background: url('...') и background: url(...)?
    И много-много других, к которым я не имею никакого отношения.

    Почему не сделать по тем же тэгам (см. п. «Ввести тэги по вопросам») ссылки на основные решения. Которые можно обсуждать, комментировать, модифицировать без принадлежности к авторам (просто список участников с вкладом в решение).

    9. Технические доработки
    Поиск — нет введённого запроса в поле поиска.
    Ответ — нет горячих клавиш для форматирования.
    Комментарий — нет возможности форматировать текст.
    Комментарий — как быстро получить ссылку (тема + якорь)?
    Текстовое поле для комментария — делаешь такие примеры codepen.io/cleric/pen/oBwqn и не понимаешь, почему его подстройка по высоте поля на Тостере не слишком-то корректно работает.
    Поле с кодом — вроде несложно добавить white-space: pre-wrap; Для элемента pre, чтобы не было горизонтальной прокрутки для непереносимых строк.

    Пы.Сы. Отдельное спасибо Сергею Протько за веру в этот ресурс.
    Ответ написан
    34 комментария
  • Нормально ли, что чистая Ubuntu Server использует почти 400Мб оперативки?

    Никуда ваша память не делась. Прочитать подробнее о том, что конкретно происходит, можно здесь - linuxatemyram.ru (оригинал)
    dd70bf360bec4fa29393b49bb148b46e.png
    Ответ написан
    Комментировать
  • Насколько важно знание фреймворков JavaScript/NodeJs программистом с точки зрения работодателя?

    MarcusAurelius
    @MarcusAurelius
    автор Impress Application Server для Node.js
    Чего еще можно желать? Я уже готов нанять Вас к себе )
    Не уж то Вы хотите устроиться на работу к идиотам, которые требуют 100500 новомодных названий, не понимая, что они значат. Если человек может использовать не свое и может сделать свое, то он лучший из профессионалов.
    Ответ написан
    1 комментарий
  • Как понять из-за чего появляется такая ошибка?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Потому что парсер, или интерпретатор, или какой-то другой механизм анализа данных встретил неожиданный символ.
    Часто встречается, когда любители твердить «яновичёк» дважды проводят десериализацию в JSON или вместо функции передают в $() непосредственно код этой функции.

    Ищите ответы тут Почему пишет, что не найден разделитель?
    Если не найдёте — прочтите строку выше.
    Ответ написан
  • Как воспользоваться на своем сайте google/яндекс картами?

    MegaMufa
    @MegaMufa
    Всем здравствуйте, конечно в гугле все есть, можно найти.

    e168f75e568e4818a3a3f1602608a05a.jpg
    Ответ написан
    Комментировать
  • Что это за баг в JS?

    В tokens ты кладёшь объект. а вовсе не копию объекта на момент покладания в tokens. Фактически, ссылку на объект. Так что логично, что при изменении объекта в одном месте изо всех остальных мест он выглядит изменившимся.
    В tokens надо класть не объект, а его копию. Например, так.
    Ответ написан
    9 комментариев
  • Браузер загружает сразу все видео под все размеры экранов, если я использую media queries или нет?

    Нет, браузер выберет тип файла сам, а так же основываясь на размере экрана - начнет загружать попадающий под условие файл.

    Вы можете это проверить сами с помощью консоли разработчика в браузере.
    Ответ написан
    Комментировать
  • Как начать работать удаленно или фрилансить, если даже проекты по мизерной цене вызывают затруднения?

    MegaMufa
    @MegaMufa
    Я бы посоветовал вам устроиться на некоторое время работать в офис. Работа в команде очень сильно помогает поднять свой уровень. В этом есть несколько плюсов:
    1. У вас всегда под рукой есть ментор, который может подсказать как решить поставленую перед вами конкретную задачу. Знания, получаемые таким образом, усваиваются намного лучше. Вы лучше понимете, как применять свои навыки.
    2. К окманде работает несколько человек, каждый со своим мнением и кругозором. Общение на обеде, за кофе и на обсуждениях проектов поможет ваам расширить свой профессиональный кругозор. Вы узнаете про многие технологии. В данный момент они вам не понадобытся, но вы будете знать о них, во время принятия решений в будущем.
    3. Устраиваясь на работу в офис стажером (или новичком, в общем неопытным специализстом), вы ставите в известность своего работодателя. Он в замен на пониженый оклад (у начинающего программиста ЗП, конечно ниже), помогает вам обучаться, выделяя вам ментора и давая практику.
    4. Вы преобретаете опыт решения реальных кейсов. В дальнейшем вы будете знать, как решается большинство типовых задач.
    5. В спокойной, но реальной обстановке получите опыт обучения "на лету" и поиска нужного материала.

    Я, когда начинал, тоже страдал такой проблемой. Год работы в комманде из 7 программистов стал для меня сильнейшим рывком. За этот год я поднялся больше, чем за предядущие три года самообучения. Поработал, получил опыт (и кучу положительных эмоций от общения с коллегами), потом спокойно перешел на удаленку.

    Мой вам совет: поработайте некоторое время в команде.
    Ответ написан
    6 комментариев
  • Верстка в Linux?

    Проблема с PS решается установкой винды в VirtalBox + еще парочка виртуалок под любимый IE. В остальном от linux одни только плюсы. Хотя для связки html/js/css не так уж и важна ОС.

    P.S. В VirtalBox попробуйте режим seamless mode
    Ответ написан
    5 комментариев
  • Верстка в Linux?

    zorro76
    @zorro76
    Я перешел с винды на Ubuntu 3 месяца назад. Все ок и все работает должным образом. Начиная от командной строки и заканчивая редактором. А то что нет полноценного Photoshop это миф. Посмотри тут https://www.youtube.com/watch?v=wjmQJckOATM И собственно зачем Photoshop верстальщику, понятно что для посмотреть макет и нарезать, все. Правда все это можно сделать и на gimp, но тут дело вкуса. Лично я за продукт Adobe assets.adobe Все остальное настраивается и работает на Linux в разы проще и быстрее. node, npm, bower, gulp, grunt, git ... да собственно все, что нужно фронт-энд разработчику. Тот же looftblog выложил видео с настройкой среды разработчика на Linux https://www.youtube.com/watch?v=DfSm7SVq4LA

    UPD: и да сейчас вообще Avocode рулит
    Ответ написан
    4 комментария
  • Что можно написать на Node.js?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js

    Часто применяется для:

    1. Локальные приложения и утилиты командной строки
    • Сборщики и трансляторы
    • Пакетная обработка и сценарии отложенной обработки
    • Скрипты, CLI (интерфейсы командной строки)
    • Генерация документации, отложенное формирование отчетов
    • Сценарии тестирования для других систем

    2. Серверы
    • Серверы веб-приложений и SPA
    • Серверы и API для мобильных приложений
    • Любые другие веб-API (RPC, JSON, REST)
    • Серверы сообщений и трансляция событий (чаты, игры, интерактив)
    • Заплаты на уже готовые системы, написанные на других языках, для реализации вебсокетов, SSE, лонг-пулинга и т.д., т.е. для затыкания дыр, для решения проблем в узких местах уже работающих систем.

    3. Клиенты
    • Оконные приложения (nw.js, node-webkit)
    • Кравлеры, парсеры и сбор данных

    4. Железо
    • Программирование микроконтроллеров (arduino, espruino, tessel)
    • Промышленная автоматизация

    Редко применяется (но подходит) для:
    • CMS, публикация контента (просто ниша уже занята и в этой задаче нода не дает чего-то принципиально нового или сверх соблазнительного).
    • Массовая электронная коммерция и торговля (не применяется для массовых движков магазинов, но используется отдельными крупными компаниями для торговых и платежных задач в качестве дополнительного средства к уже имеющемуся ПО, по сути закрывает узкие места).

    И плохо подходит:
    • Вычисления и моделирование, со скоростью математических операций нода и JS, как не типизированный язык, не дают хороших показателей
    • Научные приложения (по тем же причинам)
    Ответ написан
    10 комментариев
  • Что стоит изучить по Bootstrap 3?

    @BelkinVadim
    Frontend разработчик
    Bootstrap это по сути набор готовых UI элементов, плагинов для них же, который используют чтобы не тратить время на создание с нуля UI элементов. Для начала ознакомьтесь со структурой всех элементов, от простых кнопок, иконок и полей, до более объёмных, вроде модальных окон и т.п., как их можно совмещать, модифицировать классами, компоновать с помощью сетки и т.д. И в процессе при необходимости изучите и сами js плагины для управления этими же UI элементами.
    Ответ написан
    9 комментариев
  • Что стоит изучить по Bootstrap 3?

    @maxyc_webber
    Web-программист
    Что стоит изучить по Букварю?

    простите, но что там не понятного? берешь и копипастишь.
    Ответ написан
    1 комментарий
  • Почему не минифицируют html?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Потому что там толком нечего минифицировать, а статику отдают и так пожатой в gzip или deflate
    Ответ написан
    1 комментарий