Разработчику > Соглашение по оформлению кода JS > Инструкции

Инструкции.

  1. Все операторы должны завершатся знаком “;” (ESLint).
  2. За исключением особых случаев запрещено удаление свойств объекта через delete, рекомендуется присваивать свойству null либо undefined.
  3. Запрещено использование eval (исполнение динамического кода). Исключения правила только в исключительных случаях (ESLint).
  4. Запрещено использование with (ESLint).
  5. Использование this разрешено только в конструкторах, деструкторах и методов объектов (ESLint).
  6. Использование конструкции for-in только для прохода по свойствам объекта.
  7. Запрещено использование call, apply (изменение контекста вызова функции) (ESLint).
  8. Всегда обрамляйте конструкции «if», «else», «for», «while», «try», «catch» фигурными скобками с многострочной конструкцией (ESLint).
  9. Переменную блока «catch» не называть как переменные более высокого уровня, т.к. изоляция для нее не действует (ESLint).
  10. В конструкции "switch" отсутствие break допускается только у default.
  11. Используйте строгие операторы сравнения («===» и "!==") вместо нестрогих операторов («==» или "!=") (ESLint).
  12. Проверки типов:
    1. Проверка типа на строку (String):
      typeof object ==='string'
    2. Проверка типа на число (Number):
      typeof object ==='number'
    3. Проверка типа на логическое значение (Boolean):
      typeof object === 'boolean'
    4. Проверка типа на объект (Object):
      typeof object === 'object'
    5. Проверка типа на простой объект (Plain Object):
      jQuery.isPlainObject( object )
    6. Проверка типа на функцию (Function):
      jQuery.isFunction( object )
    7. Проверка типа на массив (Array):
      jQuery.isArray( object )
    8. Проверка типа элемента html-DOM (Element):
      object.nodeType
  13. Проверки на null и undefined:
    1. Проверка на null:
      object === null
    2. Проверка на null или undefined:
      object == null
    3. Проверка на undefined для глобальных переменныx:
      typeof variable === undefined
    4. Проверка на undefined для свойств :
      object.prop === undefined
  14. Рекомендуется предусматривать обработку возможных исключений.
  15. Использование пользовательских исключений не запрещено.
  16. Рекомендуется не использовать в вычисляемых выражениях числовые константы.