Olá, creio que o exemplo do operador lógico NOT esteja incorreto. A Variável Const nos trás um valor falso. No bloco if temos o valor !chuva, que seria o contrário de falso, O contrário de falso é verdadeiro, creio que a mensagem do primeiro console. log deveria vir assim "Está chovendo. Melhor ficar em casa"
const chuva = false;
if (!chuva) {
console.log("Não está chovendo. Pode sair de casa.");
} else {
console.log("Está chovendo. Melhor ficar em casa.");
}