# Functions - arguments and parameters

• Parameters are like placeholders for data that will be passed to a function.
• Arguments are the actual values passed to a function while calling it
``````function calculateBill(billAmount, taxRate) { // here billAmount, taxRate are parameters
const total = billAmount + billAmount * taxRate
}

calculateBill(100, 0.13); // here 100, 0.13 are arguments``````
• Parameters are variables local to the function; available only inside the function.
• You can also pass variables as arguments during a function call.
• We can also pass expressions as arguments to a function.
• ``myTotal3 = calculateBill(20+20+30, 0.3);``
• So, we can either pass direct value or variables holding value or expressions resulting in a value to a function as arguments.
• Passing functions as arguments:
• ``````function doctorize (name) {
return `Dr. \${name}`;
}

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

// We can pass a function inside another
yell(doctorize('Soumya')); // HEY DR. SOUMYA
// Above, returned value of doctorize function is passed to yell function``````
• Default values:
• ``````function yell (name = 'Silly Goose') {
return `HEY \${name.toUpperCase()}`;
}

yell('Soumya') // HEY SOUMYA
yell() // HEY SILLY GOOSE

// Above, if we don't pass any argument to yell function, then it takes the default value in function definition,
// here Silly Goose, else it takes whatever we pass as argument.``````
• Important gotcha:
• ``````function calculateBill(billAmount, taxRate = 0.13, tipRate = 0.15) {
console.log('Running Calculate Bill!!');
const total = billAmount + billAmount * taxRate + billAmount * tipRate;