More on Control Flow in JS No.2 If/Else/ElseIf


#1

What is Wrong?

var isNan = function(number) {
// Your code goes here!
if (number % 2) {
return false;
} else if(isNan(undefined)) {
return true;
} else {
return true;
}
};

isNan(4);


#2

@kodekat9,

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

@kodekat9,

In lesson-1 Instructions:

Write an if / else statement inside the isEven function. 
It should return true; if the number it receives is evenly divisible by 2. 
Otherwise (else), it should return false;.

Make sure to return - don't use console.log()!

In lesson-2 Instructions:

Add an else if branch to your existing if/else statement. 
If the number put into the function is not a number at all, 
 ==instead of return true; or return false;==, 
  the function should ==return a string== 
  that tells the user that their input isn't a number. 
  (This string can say whatever you like.)

Javascript has a isNaN() Method
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN


#4

There's no need to change the function's name. Your if statement is supposed to return TRUE (as per lesson 1, the one before this one). Your else if statement has an undefined parameter. You have a parameter established in your function at the very top. You have to return a string of text not a value of true/false within your else if. Your else statement should be FALSE. And lastly, you don't have to call your function at the end because there's no need for looping in this exercise. Go ahead and give it a try...


#5

I had improve it and the thing that i am confuse about is:

var isEven = function(number) {
// Your code goes here!
if (number % 2) {
return false;
} else if(number = undefined) {
return true;
} else {
return true;
}
};

isEven(4);

:sweat:


#6

@kodekat9,
The Instructions:

Add an else if branch to your existing if/else statement. 
If the number put into the function is not a number at all, 
 ==instead of return true; or return false;==, 
  the function should ==return a string== 
  that tells the user that their input isn't a number. 
  (This string can say whatever you like.)

else if( isNaN( number ) ) {
 return "This string can say whatever you like"
 }

#7

I think you have to:

a if(number%2===0)
b. isNaN(number)

those aren't the answers, this confused me as well/ However I know that you can't just leave number%2 as a condition alone.

Hope that helps a little.