Смотрите, вы не объявили переменную внутри функции, поэтому whiteZp стала глобальной переменной, которая даже после работы функции останется в объекте window. Так делать плохо, но на работоспособности функции это не сказывается. В данной задаче важнее логика решения и то, что из функции возвращается.
Но мы рассмотрим этот случай и, возможно, внесём изменения в проверки.
Это в любом случае будет Reference Error, потому что на стадии компиляции движок не видит никакой переменной whiteZp ни к глобальной области видимости, ни в лексической.
var calculateSalary = function (zarplata) {
if (zarplata < 100000 && zarplata >= 0) {
var sum = zarplata*(1-35/100);
}
if (zarplata >= 100000) {
var sum = zarplata*(1-45/100);
}
return Math.round(sum);
};
Объясните плиз, как вылезает нанокопейка при перемножении 100000 * 0.55?
это особенности JS?
В техзадании могли бы и подсказать, как правильно называть переменные с зарплатой. А то я через гугл-переводчика получил “dirty salary” и “net salary” . А остальное - плёвое дело.
var calculateSalary = function (blackSalary) {
if (blackSalary >= 100000) {
var whiteSalary = Math.round (blackSalary * 0.55);
}else{
whiteSalary = Math.round (blackSalary * 0.65);
}
return whiteSalary;