Условные операторы
-Запрещена «проверка Йоды» — в условных операторах в блоке условия при сравнении переменной или свойства со значением сначала идет переменная или свойство объекта и только потом значения, а не наоборот. +
Запрещена «проверка Йоды» — в условных операторах в блоке условия при сравнении переменной или свойства со значением сначала идет переменная или свойство объекта и только потом значения, а не наоборот.
if (1 === myValue) { /*...*/ }
if (myValue === 1) { /*...*/ }
-
-
+
При сравнении двух значений используется оператор строгого сравнения вместо оператора нестрогого сравнения
В условных операторах не используется оператор присвоения
@@ -318,33 +314,29 @@Объявление переменных и функций
Запрещено переопределять с помощью ключевого слова ранее созданные переменные
-Запрещено использовать множественное объявление через одно ключевое слово. Для каждой переменной используется отдельный var
, let
или const
.
+
Запрещено использовать множественное объявление через одно ключевое слово. Для каждой переменной используется отдельный var
, let
или const
.
const a = 1, b = 2;
const a = 1;
const b = 2;
-
-
Объявление функций
-Запрещено переопределение функций, созданных с помощью функционального объявления (function declaration) +
Запрещено переопределение функций, созданных с помощью функционального объявления (function declaration)
function myFunc() {};
myFunc = 2;
-
+
Новые функции не создаются с помощью конструктора Function
Вместо коллекции arguments
, используется rest-оператор, если это позволяет версия языка
Для превращения массива с данными в аргументы вместо вызова функции через apply
используется spread-оператор, если это позволяет версия языка
-
+
Для превращения массива с данными в аргументы вместо вызова функции через apply
используется spread-оператор, если это позволяет версия языка
Math.max.apply(null, [1, 100, 15, 1000]);
Math.max(...[1, 100, 15, 1000]);
-
Создание значений
Не вызываются служебные конструкторы, создающие объекты из глобальной области видимости Math()
, JSON()
, Reflect()
Приведение типов
Константы в условиях
-В блоки условия операторов if
, while
, for
и тернарного оператора не передается константное значение, которое подразумевает, что условие выполняется (или не выполняется) всегда
+
В блоки условия операторов if
, while
, for
и тернарного оператора не передается константное значение, которое подразумевает, что условие выполняется (или не выполняется) всегда
if (true) {}
@@ -417,7 +409,6 @@ Константы в условиях
const ternaryValue = isA() ? 'a' : 'b';
-