Java script best practies for beginner
6 советов начинающему Javascript девелоперу.
1. JavaScript не поддерживает ассоциативные массивы(хештаблицы, мапы).
Для этого можно использовать объекты :
обращаться к ним можно так :
Удаление свойств лучше сделать через метод delete -
таким способом удалиться сама запись из объекта. В противном случаи можно было сделать так :
Разница между строковой нотацией
и
в том,что в первом случае, объект map можно использовать как JSON объект.
2. Используйте === вместо ==
Проблема == в том, что этот оператор автоматически преобразовывает типы во время сравнения. Поэтому == и === дают разные результаты :
3. Избегайте глобальных переменных
Создание любой переменной, без идентификатора var автоматически делает эту переменную глобальной. Что приводит конфликту имен во время работы с посторонним кодом. JS не поддерживает блочную область видимости. Код :
и
идентичен.
Для таких случаев в JS есть функциональная область видимости.
4. Сокрытие функций от глобальной области видимости
При написании какой нибудь своей утилиты или либы, желательно скрыть весь её функционал в какой нибудь одной переменной. Это даст вам бесконфликтное внедрение и хорошие условия сосуществования с другим сторонним js-ом.
Так же можно скрывать не только функции но и переменные, только немного другим способом.
Переменная counter не видна никому, кроме внутренних функций.
Использовать MyUtil можно таким способом :
Отличие первого способа от второго, в том, что в первом уже происходит инициализация объекта, а во втором можно сказать, только описание, а инициализация во время присваивания. Если сравнивать с языком Java, то первый случай, это статические свойства и методы, а второй, полноценный класс, который необходимо проинициализировать, прежде чем использовать.
5. Альтернативная конкатенация строк и работа с DOM
Допустим необходимо создать список каких нибудь элементов и добавить эти элементы в HTML код. Первый способ который приходит в голову :
В коде есть по крайне мере два проблемных места. Первое. Обращение в элементам DOM модели очень затратный процесс. Поэтому избавимся от него и будем делать это единожды.
Второе. Конкатенация строк может работать быстрее.
I won’t bore you with benchmarks; you’ll just have to believe me (or test for yourself) - this is by far the fastest method! Using native methods (like join()), regardless of what’s going on behind the abstraction layer, is usually much faster than any non-native alternative. - James Padolsey, james.padolsey.com
6. Self-Executiong Function
Это функция, которая выполняется автоматически при её создании, и имеет следующий вид:
Ну и для тех, кому не хватило, вот пару ссылок на полезные ресурсы :