Solucionado (ver solução)
Solucionado
(ver solução)
12
respostas

Questão de booleanos em JS

Estudando booleanos em JS me deparei com esta questão bem simples mas que está sempre dando erro ao imprimir tela ...

"Defina a função hojeSeJoga, que receba por parâmetro uma string que informe o dia da semana. Esta função deve retornar"Hoje é dia de futebol!!!" se parâmetro for "domingo", caso contrário deve retornar "Hoje não é dia de futebol :(". "

function hojeSeJoga ("domingo") {


  if ("domingo" == true) {
    console.log ("Hoje é dia de futebol!!!");
  } else {
    console.log ("Hoje não é dia de futebol :(");
  }
}

No >_console tem como resposta:

hojeSeJoga ("domingo") function hojeSeJoga ("domingo") { ^

SyntaxError: Unexpected string

solução.js:6 function hojeSeJoga ("domingo") { ^

Por favor, alguém sabe me informar onde está meu erro? Obrigado.

12 respostas

Você esta colocando o valor do parâmetro entre aspas na declaração da função, isso deve ser feito no momento de chamada da função e não antes,dessa maneira ele interpreta como valor e não variável, o correto seria :

function hojeSeJoga (domingo) {


  if (domingo == "domingo") {
    console.log ("Hoje é dia de futebol!!!");
  } else {
    console.log ("Hoje não é dia de futebol :(");
  }
}

hojeSeJoga ("domingo");

Não funfou...

Sua solução não passou as provas * Objetivos que não foram atendidos: **hojeSeJoga faz comparações contra strings

Resultados do teste: hojeSeJoga("domingo") deveria dizer se joga >> undefined == 'Hoje é dia de futebol!!!'

hojeSeJoga("terça") devería dizer que não joga >> undefined == 'Hoje não é dia de futebol :('

***Apareceu isso no console:

hojeSerJoga ("domingo")
Hoje é dia de futebol!!!
solution.js:25
var __mumuki_query_result__ = hojeSerJoga ("domingo");
^

ReferenceError: hojeSerJoga is not defined
at Object.<anonymous> (solution.js:25:31)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3

Tentei assim:


function hojeSeJoga (diaDaSemana) {

  var diaDaSemana = "domingo";

  if ("domingo") {
    console.log ("Hoje é dia de futebol!!!"); 
  } else {
     console.log ("Hoje não é dia de futebol :(");            
  }
}

** >_console**

  hojeSeJoga ("domingo")
Hoje é dia de futebol!!!
=> undefined
  hojeSeJoga ("sexta")
Hoje é dia de futebol!!!
Hoje é dia de futebol!!!
=> undefined

Ainda sem solução... : _(

Ao que parece esta funcionando nos testes do console! Mas ao enviar a questão, diz haver erro...

function hojeSeJoga (diaDaSemana) {

  if (diaDaSemana == "domingo") {
  return "Hoje é dia de futebol!!!";
  }
  else {
  return "Hoje não é dia de futebol!!! :(";
  }
}

Olá Nelson,

O erro no primeiro caso acontece pelo motivo que o Breno explicou, entre os parênteses você pode definir parâmetros para a função (variáveis). Assim o código que ele mandou funciona.

Acredito que a diferença seja que a atividade está pedindo para você retornar o texto Hoje é dia de futebol!!! ou Hoje não é dia de futebol :(, mas o que está sendo feito é utilizar o console.log para visualizar o resultado, caso sim esse código deve ser "aprovado" pela atividade:

function hojeSeJoga(domingo) {
    if (domingo == "domingo") {
        return "Hoje é dia de futebol!!!";
    } else {
        return "Hoje não é dia de futebol :(";
    }
}

Seria essa a solução?

solução!

Lucas, sua resposta está bem próxima da minha última solução... atende ao requisitado no console... porém a reposta que recebo do site onde faço as questões é:

" Sua solução funcionou, mas há coisas para melhorar Objetivos que não foram atendidos: 'hojeSeJoga' faz comparações contra strings"

"Fazer comparações contra strings"... não sei o que quer dizer isso...

Droga! Apertei sem querer minha resposta como solucionada... tem como desmarcar....

Pra desmarcar como solucionado não dá, o que é possível é só trocar qual é a solução.

Sobre a mensagem "Fazer comparações contra strings" talvez seja para utilizar comparação entre datas que a atividade quer, tem mais alguma informação sobre a atividade que você pode passar? Como a lista de objetivos?

Define a função hojeSeJoga, que receba por parâmetro uma string que informe o día da semana. Esta função deve retornar"Hoje é dia de futebol!!!" se parâmetro for "domingo", caso contrário deve retornar "Hoje não é dia de futebol :(".

Dá-me uma dica! A diferença do exercício anterior para este é que não está pedindo para imprimir (console.log ()) uma string, e sim que a função retorne (return).

Isto é tudo que ele dá sobre a questão...

Certo, testa então esse código que utiliza datas:

function hojeSeJoga(dia) {
    // Cria um objeto do tipo Date baseado na data recebida
    var data = new Date(dia);

    // Compara se a data é domingo
    // getDay() retorna o dia da semana de 0 a 6 (0 é domingo)
    if (data.getDay() == 0) {
        return "Hoje é dia de futebol!!!";
    } else {
        return "Hoje não é dia de futebol :(";
    }
}

Opa, um detalhe importante que eu esqueci de falar, para esse exemplo acima funcionar deve ser passado a data no formato ano-mes-dia, exemplo: "2019-12-05"