Модули AngularJS и внедрение зависимостей

Как извесно Dependency Injection – это один из основных концептов архитектуры AngularJS. Разберем несколько примеров использования сервисов в модулях.

За основу данного поста я взял вот эту статью, которую перевел и немного поправил.

Continue reading

setTimeout может содержать больше 2х параметров

Никогда не задумывался на тем, что есть альтернативный синтаксис использования метода setTimeout:

var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);

param1, param2 – параметры, которые передадутся в функцию func, пример:

setTimeout(alert, 5000, "YES")

только в IE версии < 10 это не поддерживается. Но можно переопределить метод, как предложено тут.

 

P.S.: Сергей, спасибо за тему.

FirefoxOS телефоны

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

С чего начать изучение AngularJS. Часть2 – Шаблоны оживают.

В первой части мы разобрали как развернуть проект, его структуру, MVC компоненты и как это все тестировать с помощью testacular.

В этой части мы уделим больше внимания шаблонам и директивам.

Continue reading

Паттерны в JavaScript

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

Под раздачу падают следующие кандидаты:

  • Singleton
  • Constructor
  • Module
  • Mixin
  • Observer
  • Factory method
  • Abstract Factory
  • Facade
  • Decorator
  • Proxy
  • Adapter
  • MVC/MVP/MVVM

Литература:

Если какие-то важные шаблоны забыл, либо есть чего добавить по литературе – пишите – дополним.

Тест на позицию web-разработчика в компанию Atlassian

На днях разминался JavaScript тестом от компании Atlassian. Так как данного теста нет в публичном доступе – поделюсь информацией. Для прохождения необходимо написать запрос в компанию и тогда вам вышлют специально созданную ссылку, которая ведет на домен interviews.atlassian.net.

Тест состоит из 4х секций:

  1. выбор правильного варианта (Multiple Choice)
  2. код (Code)
  3. сочинение (Long Answer)
  4. бонус (Bonus)

Итак подробно по секциям:

Continue reading

Все для обработки JavaScript error в проекте

Решил сделать что-то типа TODO списка “Что необходимо сделать для красивой обработки ошибок JavaScript в проекте”.

  • своя обертка-заглушка на объект console
  • отправка ошибок на сервер
  • переопределение обработчика window.onerror
  • создание своих классов ошибок
  • классификация ошибок
  • красивый вывод
  • режим отладки

Более подробно о каждом под катом.

Continue reading

Возможности консоли браузера

Речь пойдет о начинке встроенного объекта console в браузерах Chrome и Firefox.

Начнем с простого – метод console.log(). Базовый синтаксис:

console.log(obj1 [, obj2, ..., objN);
console.log(msg [, subst1, ..., substN);

Если с первым вариантом использования все понятно, то со вторым следует разобраться: в данном случае мы можем использовать шаблон первым параметром, в который будут подставлены переменные, пример:

console.log("%s is %d years old.", "Bob", 42)

и выведет оно, как вы уже догадались: Bob is 42 years old.

Для подстановки можно использовать следующие подшаблоны:

  • %o – для ссылки на объект
  • %d, %i – целые чила (integer)
  • %s – строки
  • %f – числа с плавающей запятой (float)

Continue reading