Можно первые два условия притянуть за уши и записать через ||, но по-моему смысла в этом нет
Поэтому вот решение только через оператор &&
let name = prompt("Введите имя: ");
let surname = prompt("Введите фамилию: ");
let nickname = prompt("Введите никнейм: ");
function sayHello(name, surname, nickname) {
if (name && surname) {
alert(`Здравствуйте, ${name} ${surname}`);
} else if (!name && surname && nickname) {
alert(`Здравствуйте, ${nickname}`);
} else if (name && !surname && nickname) {
alert(`Здравствуйте, ${name}`);
} else {
alert(`Здравствуйте, Noname`);
}
}
sayHello(name, surname, nickname);