12 if/else Function saying "unexpected token if"


#1



https://www.codecademy.com/courses/javascript-beginner-en-6LzGd/2/4?curriculum_id=506324b3a7dffd00020bf661#


I'm pretty sure I put the code in EXACTLY how it should be, but the console says "SyntaxError: Unexpected token if"

I've done if/else statements plenty of times but I don't see how this one is wrong. Someone please help me out, thanks :slight_smile:


var sleepCheck = function(numHours)
if (numHours >= 8) {
    return "You're getting plenty of sleep! Maybe even too much!";
} else { 
    return "Get some more shut eye!";
};
 sleepCheck(10);
 sleepCheck(5);
 sleepCheck(8);


#2

@werehogify58,
You are missing the opening curly-bracket-{
to indicate the start of the FUNCTION-BODY

the FUNCTION talk

var myFunc = function( param1, param2) {
       //Begin of  anonymous FUNCTION-BODY
       //VARIABLE -myFunc- has an -anonymous function- assigned
       //this -anonymous function- has 2 PARAMETERS param1 and param2
       //param1 and param2 PARAMETERS are used 
       //as -local- VARIABLES throughout the FUNCTION-BODY

      console.log( param1 + " and " + param2 ) ;

      //End of anonymous FUNCTION-BODY
};

If you want to call/execute the anonymous function
you will have to add a pair of parentheses to the variable myFunc
like
myFunc();
As the anonymous function was defined
as having 2 parameters
you have to provide 2 arguments
in our case 2 string VALUES "Alena" and "Lauren"
like
myFunc("Alena","Lauren");

some quotes from the outer-world:

**argument is the value/variable/reference being passed in,
parameter is the receiving variable used within the function/block**

OR

**"parameters" are called "formal parameters",
while "arguments" are called "actual parameters".**

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function with 1 parameter using return-statement

var myFunction = function( param1 ) {
       //Begin of FUNCTION-BODY
       //myFunction =function= has 1 PARAMETER param1
       //this param1 PARAMETER is used as a -local- VARIABLE
       //throughout the FUNCTION-BODY

      return param1;

      //End of FUNCTION-BODY
      };

you have defined a myFunction function
which takes 1 parameter param1
this param1 parameter is used
as a variable throughout the FUNCTION-BODY.

If you want to call/execute this myFunction function
and this myFunction function was defined
as having 1 parameter param1
you will have to provide 1 argument
in our case a "number VALUE" 4
myFunction( 4 );

some quotes from the outer-world:

**argument is the value/variable/reference being passed in,
parameter is the receiving variable used within the function/block**

OR

**"parameters" are called "formal parameters",
while "arguments" are called "actual parameters".**

============================================

As you are using the return-statement in your myFunction function
you will only get a return-value no-display.
You can however capture this return-value in a variable
and then use the console.log()-method to do a display.

var theResult = myFunction( 4 );
console.log( theResult );

OR directly

console.log( myFunction( 4 ) );

#3

That is a good refresher!
The instructions say I have to output the answers directly using sleepCheck though. I just want to know why it says "if" is a bad token. I added brackets to the code now and now it says "Oops, try again. It looks like sleepCheck() isn't returning "You're getting plenty of sleep! Maybe even too much!" when numHours is 10. Check your if / else syntax and whether you're using the correct comparison operator."

This is my code now

var sleepCheck = function(numHours) {
if (sleepCheck > 8)
{
return "You're getting plenty of sleep! Maybe even too much!";
} else {
return "Get some more shut eye!";
}; };

sleepCheck(10);
sleepCheck(5);
sleepCheck(8);


#4

@werehogify58

Read the Instructions !!!!
Is the IF condition sleepCheck > 8 correct ?!!
Are you using the EXACT text's ???
Why are you not using

console.log( sleepCheck(10) );

as you are using the return statement...


#5

I fixed it! All I had to do was change the sleepCheck after "if" to numHours. Agh! Facepalm.
I'm sure the console.log would work too but only sleepCheck worked so that's fine with me :slight_smile:

Thanks for your help, I'll definitely keep what you said in mind