Условные операторы
-Запрещена «проверка Йоды» — в условных операторах в блоке условия при сравнении переменной или свойства со значением сначала идет переменная или свойство объекта и только потом значения, а не наоборот. +
Запрещена «проверка Йоды» — в условных операторах в блоке условия при сравнении переменной или свойства со значением сначала идет переменная или свойство объекта и только потом значения, а не наоборот.
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';
-