Oi Lucas, como já foi citado aqui, essa é uma situação de operadores Lógicos.
Vamos lá, respondendo a tua pergunta, o separador && funciona para comparações Singulares.
Este caso que você passou: " != 1, 2, 3" é como se estivesse passando uma Lista de argumentos para que sejam verificados, o que a linguagem não permite, pois existem diversos fatores para que uma Lista seja percorrida.
Para isso, existem os métodos nas quais as classes estendem, em um array, por exemplo, você poderia passar mais argumentos:
var arrayT = new Array(1, 2, 3);
console.log(arrayT.find(function(elemento){
return elemento == 3;
}));
Veja por exemplo, esta função que eu montei que realiza o mesmo procedimento que você criou:
Array(40 - 30 + 1).fill().map((_, idx) => 30 + idx).forEach((element) => {
element != 33 && element != 37 ? console.log(element) : delete element;
});
Repare que utilizo os mesmo operadores lógicos, pois esta é a forma mais segura de classificar um elemento.