W przykładzie z błędem, do konsoli zostania zalogowana cena 123
.
Mimo, że wywołując addTax()
wyraźnie podajemy w drugim argumencie 0
jako wartość podatku, to używając wewnątrz funkcji logicznego operatora OR (||
), wartość 0
traktowana jest jako wartość fałszywa (falsy). W procesie porównywania jest więc odrzucana na rzecz wartości prawdziwej (truthy) i finalnie do zmiennej tax przypisana zostaje wartość 0.23
.
Aby naprawić ten błąd możemy np. bezpośrednio podać wartość domyślną dla parametru tax podczas deklarowania funkcji.
Unikniemy dzięki temu wykonywania operacji porównania i wewnątrz funkcji używana będzie dokładnie taka wartość, jaką przekażemy w argumencie wywołując funkcję. W przypadku braku przekazania argumentu tax
, użyta zostanie wartość domyślna 0.23
.