Select Page
function calc(billAmounttaxRate = .05) {
/*
In the above line:
function = keyword
calc = function name
billAmount = a parameter
taxRate = another paramter, with a default vale
{ = scope start 
*/
//This is the function body
const total = billAmount * (1 + taxRate);  
return total;  // this is called a return statement
// End of the function body

}  // This is the end of the scope of the function
const myTotal = calc(1000.065);   
/*
myTotal is a variable to capture the returned value
calc is the name or reference
(1000, .065) – call, run, or invoke – these are actual values passed in as arguments
*/
const myTotal2 = calc(100.075)

//  Parameters are placeholders.  Arguments are actualvalues you use when calling the function

//When using functions, you can also pass in variables instead of numbers like I did above.

//Example: 
const mikesDinner = 50;
const mikesTaxRate = .08;

const mikesTotal = calc(mikesDinnermikesTaxRate)
console.log(mikesTotal)

//Another Function Example
function sayHelloToSomeone(firstName) {
    return `Hello ${firstName}`
}
const greeting = sayHelloToSomeone(‘Mike’)
console.log(greeting)

//Passing in Expressions to a function

const myTotal3 = calc(100.075);  // returns 107.5
//Now what happens if we do this:
const myTotal4 = calc(20 + 25 + 55.06)   // returns 106
//Passing functions as arguments

function doctorize(name) {
    return `Dr. ${name}`

function yell(name) {
    return `HEY ${name.toUpperCase()}`;
}

// doctorize(‘Mike’)  returns Dr. Mike
// yell(‘Mike”) returns HEY MIKE

//Now, let’s pass the result of doctorize into yell

yell(doctorize(‘Mike’))  // outputs HEY DR. MIKE

// New function with a tip rate included

function totalBill(billtaxRate = .065tipRate = .20) {
    const newTotalBill = (bill * (1 + taxRate)) * (1 + tipRate)
    return newTotalBill
    
}

const totalAmount = totalBill(100,.07,.15)   //returns $123.05

// if you want to use the default parameter for a function value, you have to use undefined
//Example:   
// const totalAmount2 = totalBill(200, undefined, .18) 
// This will pass the default value of .065