function printHello() {
console.log('function says hello');
}
console.log(typeof printHello); // function
printHello(); // function says hello
Functions names are allowed to be made of $, _, a-z, A-z and 0-9.
function $print() {}
function _print() {}
function p8rint() {}
function greeting(name) { // name here is the parameter
console.log(`Hello, ${name}`);
}
// 'Alex' here is the argument passed into the function call
greeting('Alex'); // "Hello, Alex"
function addNumbers(a, b) {
return a + b;
}
const result = addNumbers(10, 5);
console.log(result); // 15
Please Note:
this
context in arrow functions inherits from it's parent's scope.
const add = (a, b) => a + b;
console.log(add(4, 5)); // 9
const subtract = (a, b) => {
const result = a - b;
return result;
}
console.log(subtract(1, 1)); // 0
let add: (Int, Int) -> Int = { $0 + $1 } // shorthand argument names and implicit return
print(add(4, 5)) // 9
You know how old your dog is in human years, but what about dog years? Calculate it!
Write a function named calculateDogAge that:
takes 1 argument: your puppy's age. calculates your dog's age based on the conversion rate of 1 human year to 7 dog years. outputs the result to the screen like so: "Your doggie is NN years old in dog years!" Call the function three times with different sets of values. Bonus: Add an additional argument to the function that takes the conversion rate of human to dog years.
Solution
function calculateDogAge(puppysAge, conversionRate) {
if ((puppysAge < 1) || (conversionRate < 1)) {
console.log('Invalid arguments.');
return;
}
const age = puppysAge * conversionRate;
console.log(`Your doggie is ${age} years old in dog years!`);
}
calculateDogAge(1, 7); // Your doggie is 7 years old in dog years!
Write a JavaScript function that reverses a number.
Example x = 32243
Expected Output : 34223
Solution
function reverseNumber(number) {
const str = number.toString();
let strReverse = '';
for (const char of str) {
strReverse = char + strReverse;
}
return parseInt(strReverse);
}
console.log(reverseNumber(32243)); // 34223
Write a function to find the largest value in an array
Input: [-3, 5, 1, 89, 3, 0, -78, 1]
Output: 89
Solution
function largestValue(inputArray) {
if (inputArray.length === 0) {
return -1;
}
let currentLargest = inputArray[0]
for (const element of inputArray) {
if (element > currentLargest) {
currentLargest = element;
}
}
return currentLargest;
}
console.log(largestValue([-3, 5, 1, 89, 3, 0, -78, 1])); // 89
console.log(largestValue([])); // -1
Write a function called squareNumber
that will take one argument (a number), square that number, and return the result. It should also log a string like "The result of squaring the number 3 is 9."
Write a function called halfNumber
that will take one argument (a number), divide it by 2, and return the result. It should also log a string like "Half of 5 is 2.5.".
Write a function called percentOf
that will take two numbers, figure out what percent the first number represents of the second number, and return the result. It should also log a string like "2 is 50% of 4."
Write a function called areaOfCircle
that will take one argument (the radius), calculate the area based on that, and return the result. It should also log a string like "The area for a circle with radius 2 is 12.566370614359172."
- Bonus: Round the result so there are only two digits after the decimal.
Write a function that will take one argument (a number) and perform the following operations, using the functions you wrote earlier1:
- Take half of the number and store the result.
- Square the result of #1 and store that result.
- Calculate the area of a circle with the result of #2 as the radius.
- Calculate what percentage that area is of the squared result (#3).
Solution
/*
Write a function called squareNumber that will take one argument (a number), square that number, and return the result. It should also log a string like "The result of squaring the number 3 is 9."
*/
function squareNumber(number) {
if (typeof number !== 'number') {
console.log(`${number} is an invalid number`);
return
}
const square = number * number;
console.log(`The result of squaring the number ${number} is ${square}`);
return square;
}
//squareNumber(25);
/*
Write a function called halfNumber that will take one argument (a number), divide it by 2, and return the result. It should also log a string like "Half of 5 is 2.5.".
*/
function halfNumber(number) {
if (typeof number !== 'number') {
return;
}
const result = number / 2;
console.log(`Half of ${number} is ${result}`);
return result;
}
//halfNumber(10);
/*
Write a function called percentOf that will take two numbers, figure out what percent the first number represents of the second number, and return the result. It should also log a string like "2 is 50% of 4."
*/
function percentOf(number1, number2) {
if (typeof number1 !== 'number' || typeof number2 !== 'number') {
console.log('percentOf - Not a number');
console.log(typeof number1);
console.log(typeof number2);
return;
}
if (number2 === 0) {
console.log('Cannot divide by 0');
return;
}
const percent = (number1 * 100) / number2;
console.log(`${number1} is ${percent}% of ${number2}`);
return percent;
}
//percentOf(1, 2);
/*
Write a function called areaOfCircle that will take one argument (the radius), calculate the area based on that, and return the result. It should also log a string like "The area for a circle with radius 2 is 12.566370614359172."
* Bonus: Round the result so there are only two digits after the decimal.
*/
function areaOfCircle(radius) {
if (typeof radius !== 'number') {
console.log('In areaOfCircle not a number');
return
}
// area of a circle is pi * r ^ 2
// toFixed(2) - converts a number to string with 2 decimal place formatting
const formattedStringResult = (Math.PI * (radius * radius)).toFixed(2);
const area = parseFloat(formattedStringResult);
if (typeof area === 'string') {
console.log('Converting area to number');
area = parseFloat(area);
}
console.log(`The area for a circle with radius ${radius} is ${area}.`);
return area;
}
//areaOfCircle(2);
/*
Write a function that will take one argument (a number) and perform the following operations, using the functions you wrote earlier1:
1. Take half of the number and store the result.
2. Square the result of #1 and store that result.
3. Calculate the area of a circle with the result of #2 as the radius.
4. Calculate what percentage that area is of the squared result (#3).
*/
function calculateOperation(number) {
if (typeof number !== 'number') {
console.log('Invalid number.');
return;
}
// 1.
const halfResult = halfNumber(number);
// 2.
const squaredResult = squareNumber(halfResult);
// 3.
const areaResult = areaOfCircle(squaredResult);
// 4.
percentOf(areaResult, squaredResult);
}
calculateOperation(10);
/*
Half of 10 is 5
The result of squaring the number 5 is 25
The area for a circle with radius 25 is 1963.5.
1963.5 is 7854% of 25
*/