De início esqueci que o promp estava recebendo uma string então o código só funcionava para os que não poderia dirigir pois eu esqueci de colocar o "S" entre aspas. Resolvi incrementar também o código com a função .toUpperCase() conforme a resposta que a Akemi deu em entrou tópico (mas optei mantei anotado nos comentários pois não foi essa a minha solução inicial) . Segue o antes e o depois:
Antes:
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
var idade = parseInt(prompt("Qual é sua idade?"));
var temCarteira = prompt("Tem carteira? Responda S ou N");
if(idade >= 18 && temCarteira == S) {
mostra("Pode dirigir.");
} else {
mostra("Não pode dirigir.");
}
</script>
Depois:
<meta charset="UTF-8">
<script>
alert("Você tem as condições necessárias para dirigir?");
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
var idade = parseInt(prompt("Qual é sua idade?"));
var temCarteira = prompt("Tem carteira? Responda S para SIM ou N para NÃO").toUpperCase();
// inclui o .toUpperCase(); conforme sugestão da Akemi em outras resposta.
if(idade >= 18 && temCarteira != "N") {
// if(idade >= 18 && temCarteira == "S") { <---- ou dessa forma
mostra("Você pode dirigir.");
} else {
mostra("Você não pode dirigir.");
}
</script>