Найти в Дзене

Упрощение js-кода, условия

Запутанные провода
Запутанные провода

О чем: упрощать код, в разумных пределах - полезно. В частности javascript. Рассмотрим некоторые способы, которые касаются условий.

Когда можно убрать else

Допустим функция в зависимости от условия должна выполнить "набор действий 1" или "набор действий 2"

const myFunction = () => {

    if (<условие>) {

        <набор действий 1>

    } else {

        <набор действий 2>

    }

}

Упрощение:

const myFunction = () => {

    if (<условие>) {

        <набор действий 1>

        //если действия по условию выполнены - можно уже выходить из функции

        return 0;

    }

    /* если условие не выполнено, то мы никуда не вышли, а "провалились" сюда и можем выполнить нужные действия */

     <набор действий 2>

    }

}

Тернарный оператор <условие> ? <действие 1> : <действие 2>;

Тернарный оператор сокращает объем кода. Рассмотрим простые случаи, но сокращение пропорционально сложности кода.

1) нужно, чтобы если переменная больше нуля, она бы выводилась в консоль, а если нет, выводилась ошибка.

Стандартный код

if (value > 0) {

    console.log(value);

} else {

    throw new ErrorValue('Меньше нуля');

}

Использование тернарного оператора

value > 0 ? console.log(value); : throw new ErrorValue('Меньше нуля');

2) Нужно, чтобы если одна переменная больше нуля, то вторая бы увеличивалась на 2, а если меньше - уменьшалась на 3

Стандартный код

if (valueFirst > 0) {

    secondValue = secondValue + 2;

} else {

    secondValue = secondValue - 3;

}

С тернарным оператором

secondValue = valueFirst > 0 ? secondValue + 2 : secondValue - 3;

3) Отдельно рассмотрим сокращенный вариант тернарного оператора <условие> && <действие>

Допустим, если переменная больше нуля, то её нужно вывести в консоль:

Стандартный код

if (value > 0) {

    console.log(value);

}

С тернарным оператором

value > 0 && console.log(value);