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;