Na verdade o código funciona, porém me parece não fazer sentido que, ainda que a pessoa responda ser menor de 18 anos, seja realizada a pergunta se ela possui carteira ou não. Tentei solucionar agregando um segundo comando "if" e retirando o "else" mas segue realizando as duas perguntas.
<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("Ok! Você pode dirigir.");
}
if (idade<18) {
mostra("Sinto muito, você não deve dirigir.");
}
</script>