Price2 = 0;
if (roofpt == null || roofpt == 0) Price2 = 5500;
else if (roofpt !== null || roofpt !== 0 && roofmat == 1) Price2 = 7900;
else if (roofpt !== null || roofpt !== 0 && roofmat == 2) Price2 = 8900;if (!roofpt) Price2 = 5500; // null, 0, undefined, false, пустая строка
else if (roofmat == 1) Price2 = 7900; // и так известно, что не пустое
else if (roofmat == 2) Price2 = 8900; // и так известно, что не пустое
else Price2 = 0; // по умолчанию&& выше, чем ||. Эти два условия выглядят похоже, имелась в виду, наверное, лишняя перепроверка на null/ноль:(roofpt == null || roofpt == 0)
(roofpt !== null || roofpt !== 0 && roofmat == 1)&&, потом ||:A || B && C === A || (B && C)
// и второе условие на деле считается так:
(roofpt !== null || (roofpt !== 0 && roofmat == 1))rootpt, неравном null.== и строгое неравенство !==. Разжёвывать не буду, чтобы вы провалили собеседование.let Price2 = 0;
if (!roofpt) Price2 = 5500;
else Price2 = 7900;let Price2 = 0;
Price2 = (roofpt) ? 7900 : 5200;
function getPrice() {
return (
(!parseInt(roofpt) && 5500) ||
(roofmat == 1 && 7900) ||
(roofmat == 2 && 8900) || 0 ); } Price2 = 0;
if (roofpt == null || roofpt == 0) Price2 = 5500;
else if (roofpt !== null
|| roofpt !== 0
&& roofmat == 1) Price2 = 7900;
else if (roofpt !== null
|| roofpt !== 0
&& roofmat == 2) Price2 = 8900;