Size: a a a

JavaScript.Ninja

2021 June 28

KR

Kirill Romanov in JavaScript.Ninja
источник

j

john john in JavaScript.Ninja
источник

a

artalar in JavaScript.Ninja
источник

ПШ

Петя Шумский... in JavaScript.Ninja
Привет, как в таком коде можно избежать мутирования аргумента функции или можно и не избегать? В голову приходит только копировать по значению в новую локальную перменную
источник

VK

Vladimir Klimov in JavaScript.Ninja
ВЫ ж ничего не мутируете снаружи если a, b и c - это примитивы
источник

II

Ilya Izilanov in JavaScript.Ninja
ну изменять аргументы функции все равно некрасиво, даже если примитивы
источник

MK

Maxim Kostenko in JavaScript.Ninja
Сразу ретурн в if
источник

ПШ

Петя Шумский... in JavaScript.Ninja
согласен, принимается :)
но таких проверок может быть для 7 аргументов сразу и они размазываются по коду
источник

AK

Anton Kalodzich in JavaScript.Ninja
А почему бы не завести переменную d?
источник

ПШ

Петя Шумский... in JavaScript.Ninja
и становится сложно уследить, где же всё-таки присвоилось значение
источник

AK

Anton Kalodzich in JavaScript.Ninja
Для этого есть линтер
источник

MK

Maxim Kostenko in JavaScript.Ninja
Ну и если у вас b всегда строка, то лучше избавиться от ‘+’.
источник

AK

Anton Kalodzich in JavaScript.Ninja
return a + c + (b ?? isNeedToCalculate ? '...' : '...')
источник

AK

Anton Kalodzich in JavaScript.Ninja
Само собой можно разбить выражение, но суть в том, что присваивать новые значения аргументам точно не обязательно
источник

ПШ

Петя Шумский... in JavaScript.Ninja
давайте лучше вот так тогда
источник

AK

Anton Kalodzich in JavaScript.Ninja
Что за d?
источник

ПШ

Петя Шумский... in JavaScript.Ninja
пардон
источник

ПШ

Петя Шумский... in JavaScript.Ninja
источник

ПШ

Петя Шумский... in JavaScript.Ninja
ну суть в том, что кроме переприсваивания в новую локальную перменную тут особо ничего не сделать, как я понимаю
источник

AK

Anton Kalodzich in JavaScript.Ninja
Во вторую строку let d = b и проблема снова решена
источник