# JavaScript Review

Question 1

There are two functions being called in the code sample below. Which one returns a value? How can you tell?

    let grade = calculateLetterGrade(96);
    submitFinalGrade(grade);

calculateLetterGrade(96) will return a value. You can tell it returns a value by the assignment operator (=).
Question 2

Explain the difference between a local variable and a global variable.

Local variables are restricted to a specific function or block of code where they are defined. Global variables can be accessed and modified from anywhere in a program.
Question 3

Which variables in the code sample below are local, and which ones are global?

    const stateTaxRate = 0.06;
    const federalTaxRate = 0.11;

    function calculateTaxes(wages){
    	const totalStateTaxes = wages * stateTaxRate;
    	const totalFederalTaxes = wages * federalTaxRate;
    	const totalTaxes = totalStateTaxes + totalFederalTaxes;
    	return totalTaxes;
    }

Local variables are totalStateTaxes, totalFederalTaxes, calculateTaxes, and totalTaxes. Global variables are stateTaxRate and federalTaxRate.
Question 4

What is the problem with this code (hint: this program will crash, explain why):

    function addTwoNumbers(num1, num2){
    	const sum = num1 + num2;
    	alert(sum);
    }

    alert("The sum is " + sum);
    addTwoNumbers(3,7);

It will crash because "sum" is a local variable and can't be used in a global scope..
Question 5

True or false - All user input defaults to being a string, even if the user enters a number.

True.
Question 6

What function would you use to convert a string to an integer number?

parseInt().
Question 7

What function would you use to convert a string to a number that has a decimal in it (a 'float')?

parseFloat().
Question 8

What is the problem with this code sample:

    let firstName = prompt("Enter your first name");
    if(firstName = "Bob"){
    	alert("Hello Bob! That's a common first name!");
    }

The if statement is using the assignment operator(=), it should be using the equallity operator(==).
Question 9

What will the value of x be after the following code executes (in other words, what will appear in the log when the last line executes)?

    let x = 7;
    x--;
    x += 3;
    x++;
    x *= 2;
    console.log(x);

20.
Question 10

Explain the difference between stepping over and stepping into a line of code when using the debugger.

Stepping over a line of code will execute the entire line, including any function calls, without going into the details of those functions. Stepping into a line of code will take you inside any function calls on that line, allowing you to debug the function's internal code step by step.

# Coding Problems

### Coding Problems - See the 'script' tag at the bottom of the page. You will have to write some JavaScript code in it.

}