Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
704f58f
added a comment explaining the role of the = .
TTiamiyu Jun 13, 2026
dc17501
Implemented the function to get the initials as output without writin…
TTiamiyu Jun 13, 2026
dce53b5
Add dir and ext variable assignments in 3-paths.js
TTiamiyu Jun 13, 2026
cecb6ba
added a "for" statement, for random number generation to log multiple…
TTiamiyu Jun 15, 2026
bbfef51
Added comments to explain code execution prevention and commenting me…
TTiamiyu Jun 15, 2026
274fe16
Change age variable declaration from const to let for reassignment
TTiamiyu Jun 15, 2026
63265cb
Fix console log placement to correctly print city of birth
TTiamiyu Jun 15, 2026
e6db536
Fix card number assignment to string for correct slicing of last 4 di…
TTiamiyu Jun 15, 2026
1c5023d
Fix variable naming for twelve and twenty-four hour clock time
TTiamiyu Jun 16, 2026
b06aae3
Add comments to clarify function calls, variable assignments, and err…
TTiamiyu Jun 16, 2026
496d1b8
Enhance comments for clarity on variable declarations, function calls…
TTiamiyu Jun 16, 2026
32d7119
Enhance comments to provide a detailed step-by-step explanation of th…
TTiamiyu Jun 16, 2026
5e06e8c
Add results section to document outcomes of alert and prompt function…
TTiamiyu Jun 16, 2026
7503415
Add outputs and answers for console exploration activity
TTiamiyu Jun 16, 2026
abb3aa5
Clarify prediction comment regarding potential error due to variable …
TTiamiyu Jun 22, 2026
9bf321e
Fix variable redeclaration error in capitalise function and update ex…
TTiamiyu Jun 22, 2026
0642903
Fix syntax errors in convertToPercentage and square functions, and up…
TTiamiyu Jun 24, 2026
aaa500c
Add predictions and explanations for multiply and sum functions, and …
TTiamiyu Jun 24, 2026
0c1f1ad
Fix formatting in explanation comment for sum function
TTiamiyu Jun 24, 2026
231d91e
Fix getLastDigit function to accept parameters and update predictions…
TTiamiyu Jun 26, 2026
17c3829
Implement BMI calculation function and add example usage
TTiamiyu Jun 26, 2026
99dad40
Implement upperSnakeCase function to convert strings to UPPER_SNAKE_C…
TTiamiyu Jun 26, 2026
3fee2c5
Implement toPounds function to convert pence to formatted pounds and …
TTiamiyu Jun 26, 2026
80f3a4f
Update comments in formatTimeDisplay function to provide detailed exp…
TTiamiyu Jun 26, 2026
7d4c0fb
Refactor formatAs12HourClock function to improve time formatting logi…
TTiamiyu Jun 29, 2026
f7edaf1
Fix typo in explanation comment for pad function return value
TTiamiyu Jun 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Sprint-1/1-key-exercises/1-count.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ count = count + 1;

// Line 1 is a variable declaration, creating the count variable with an initial value of 0
// Describe what line 3 is doing, in particular focus on what = is doing

The = served as the executer of the assignment operation.
16 changes: 12 additions & 4 deletions Sprint-1/1-key-exercises/2-initials.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
// Declare a variable called initials that stores the first character of each string.
// This should produce the string "CKJ", but you must not write the characters C, K, or J in the code of your solution.

let firstName = "Creola";
let middleName = "Katherine";
let lastName = "Johnson";

// Declare a variable called initials that stores the first character of each string.
// This should produce the string "CKJ", but you must not write the characters C, K, or J in the code of your solution.

let initials = ``;
function getInitials() {
return `${firstName[0]}${middleName[0]}${lastName[0]}`;
}

console.log(getInitials());

// Export the initials for testing instead of returning at top-level
module.exports = getInitials;


// https://www.google.com/search?q=get+first+character+of+string+mdn

4 changes: 2 additions & 2 deletions Sprint-1/1-key-exercises/3-paths.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ console.log(`The base part of ${filePath} is ${base}`);
// Create a variable to store the dir part of the filePath variable
// Create a variable to store the ext part of the variable

const dir = ;
const ext = ;
const dir = ; /Users/mitch/cyf/Module-JS1/week-1/interpret/
const ext = ; file.txt;

// https://www.google.com/search?q=slice+mdn
5 changes: 4 additions & 1 deletion Sprint-1/1-key-exercises/4-random.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
const minimum = 1;
const maximum = 100;

const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;
for (let i = 0; i < 5; i++) {
const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;
console.log(num);
}

// In this exercise, you will need to work out what num represents?
// Try breaking down the expression and using documentation to explain what it means
Expand Down
7 changes: 5 additions & 2 deletions Sprint-1/2-mandatory-errors/0.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
This is just an instruction for the first activity - but it is just for human consumption
We don't want the computer to run these 2 lines - how can we solve this problem?
//This is just an instruction for the first activity - but it is just for human consumption
//We don't want the computer to run these 2 lines - how can we solve this problem?

To prevent the computer from executing these lines of code, you can comment them out,
you can use `//` for single-line comments or `/* */` for multi-line comments, like i demonstated above.
2 changes: 1 addition & 1 deletion Sprint-1/2-mandatory-errors/1.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// trying to create an age variable and then reassign the value by 1

const age = 33;
let age = 33;
age = age + 1;
2 changes: 1 addition & 1 deletion Sprint-1/2-mandatory-errors/2.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Currently trying to print the string "I was born in Bolton" but it isn't working...
// what's the error ?

console.log(`I was born in ${cityOfBirth}`);
const cityOfBirth = "Bolton";
console.log(`I was born in ${cityOfBirth}`);
13 changes: 13 additions & 0 deletions Sprint-1/2-mandatory-errors/3.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,16 @@ const last4Digits = cardNumber.slice(-4);
// Then run the code and see what error it gives.
// Consider: Why does it give this error? Is this what I predicted? If not, what's different?
// Then try updating the expression last4Digits is assigned to, in order to get the correct value

PREDICTION:
//the code wont work because the card number isnt in ("") and the computer wont be able to apply the .slice due to this.

THE ERROR:
//cardNumber.slice is not a function

//YES! the error is what i predicted.

FIX:
const cardnumber = "4533787178994213";
const last4Digits = cardnumber.slice(-4);
console.log(last4Digits);
7 changes: 5 additions & 2 deletions Sprint-1/2-mandatory-errors/4.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
const 12HourClockTime = "8:53pm";
const 24hourClockTime = "20:53";
const twelveHourClockTime = "8:53pm";
const twentyFourHourClockTime = "20:53";

//The Error:
//The code would not run because only a letter can follow the 'const' and 'let' declarations in javascript.
15 changes: 15 additions & 0 deletions Sprint-1/3-mandatory-interpret/1-percentage-change.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,26 @@ console.log(`The percentage change is ${percentageChange}`);
// Read the code and then answer the questions below

// a) How many function calls are there in this file? Write down all the lines where a function call is made
//1. Line 5: carPrice.replaceAll(",", "")
//2. Line 6: priceAfterOneYear.replaceAll(",", "")
//3. Line 8: console.log(`The percentage change is ${percentageChange}`)

// b) Run the code and identify the line where the error is coming from - why is this error occurring? How can you fix this problem?
//The error is in line 5, the error is occurring because there was a comma missing here; ("," "").

// c) Identify all the lines that are variable reassignment statements
//carPrice = Number(carPrice.replaceAll(",", ""));
//priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",",""));

// d) Identify all the lines that are variable declarations
//let carPrice = "10,000";
//let priceAfterOneYear = "8,543";
//const priceDifference = carPrice - priceAfterOneYear;
//const percentageChange = (priceDifference / carPrice) * 100;


// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression?
//The expression is converting the string representation of the car price to a number by first removing the comma.

//Purpose:
//To allow the computer identify the value of the car price as a number so that it can be used in calculations.
18 changes: 18 additions & 0 deletions Sprint-1/3-mandatory-interpret/2-time-format.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,32 @@ console.log(result);
// For the piece of code above, read the code and then answer the following questions

// a) How many variable declarations are there in this program?
//1.movieLength
//2.remainingSeconds
//3.totalMinutes
//4.remainingMinutes
//5.totalHours
//6.result

// b) How many function calls are there?
//1. Line 10: console.log(result)

// c) Using documentation, explain what the expression movieLength % 60 represents
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators

//The % symbol is called the modulus operator. It returns the remainder of a division operation.
// In this case, movieLength % 60 calculates the remaining seconds after dividing the total movie length by 60 (the number of seconds in a minute).
// This gives us the number of seconds that do not make up a full minute in the movie length.

// d) Interpret line 4, what does the expression assigned to totalMinutes mean?
// The expression (movieLength - remainingSeconds) / 60 calculates the total number of minutes in the movie by subtracting the remaining seconds from the total seconds
// and then dividing by 60.

// e) What do you think the variable result represents? Can you think of a better name for this variable?
// The variable result represents the formatted time of the movie in hours, minutes, and seconds. A better name for this variable could be movieDuration.

// f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer
//It will do the math perfectly for most normal positive numbers, but there are a few situations where the code will act wierdly.
//1. Visual problems
//2. Negative numbers
//3.Decimal numbers
16 changes: 16 additions & 0 deletions Sprint-1/3-mandatory-interpret/3-to-pounds.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,19 @@ console.log(`£${pounds}.${pence}`);

// To begin, we can start with
// 1. const penceString = "399p": initialises a string variable with the value "399p"

// 2. const penceStringWithoutTrailingP = penceString.substring(0,penceString.length - 1): This removes the letter 'p' from the end of the string,
// leaving just the numbers part of the string. The substring method is used to extract a portion of the string,
// starting from index 0 and ending at the second-to-last character (length - 1).

// 3. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); This is to ensure the numbers presented after the substring is at least 3 characters long,
// if the number is shorter the computer would add '0' or '0's in front of the number to make it 3 digits long.

// 4. const pounds = paddedPenceNumberString.substring(0, paddedPenceNumberString.length - 2):
// This extracts the pounds part of the string by taking all characters except the last two.

// 5. const pence = paddedPenceNumberString.substring(paddedPenceNumberString.length - 2).padEnd(2, "0");
// This extracts the pence part of the string by taking the last two characters and ensures that it is at least 2 characters long by adding '0' at the end
// if necessary as this is because we need the decimal value.

// 6. console.log(`£${pounds}.${pence}`): This outputs the final answer in the format of pounds and allows the user to see the final result also.
8 changes: 8 additions & 0 deletions Sprint-1/4-stretch-explore/chrome.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,11 @@ Now try invoking the function `prompt` with a string input of `"What is your nam

What effect does calling the `prompt` function have?
What is the return value of `prompt`?

MY RESULTS:

After running the alert function the browser to immediately open a pop up box at the top of the screen displaying what i inputted 'Hello World!'.

After running the prompt 'let myName = prompt("what is your name") the browser opened a pop up window that allowed me to type in my name and it was saved after clicking OK.

Running the 'prompt' "myName" the browser displayed the name i inputted in the console immediately.
12 changes: 12 additions & 0 deletions Sprint-1/4-stretch-explore/objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,15 @@ Answer the following questions:

What does `console` store?
What does the syntax `console.log` or `console.assert` mean? In particular, what does the `.` mean?

OUTPUTS
`console.log` came back as ƒ log() { [native code] } after hitting enter

`console` came back as console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …}

typeof console came back as 'object'

ANSWERS
The console stores a collection of functions and data that allow javascript code to interact with the browser's debugging tools

The "." is known as a property accessor, it acts as a bridge telling the javascript to look inside the object on the left to find a specific item on the right.
9 changes: 7 additions & 2 deletions Sprint-2/1-key-errors/0.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Predict and explain first...
// =============> write your prediction here
// =============> An error is likely to occur due to repeat of "str"

// call the function capitalise with a string input
// interpret the error message and figure out why an error is occurring
Expand All @@ -9,5 +9,10 @@ function capitalise(str) {
return str;
}

// =============> write your explanation here
// =============> SyntaxError: Identifier 'str' has already been declared. This error occurs because the variable 'str' is being declared again within the function,
// which is not allowed. To fix this, we can simply remove the 'let' declaration.
// =============> write your new code here
function capitalise(str) {
return `${str[0].toUpperCase()}${str.slice(1)}`;
}
console.log(capitalise("brother"));
17 changes: 15 additions & 2 deletions Sprint-2/1-key-errors/1.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,31 @@
// Why will an error occur when this program runs?
// =============> write your prediction here

//Prediction: The program will fail with a SyntaxError because 'decimalNumber' is redeclared.

// Try playing computer with the example to work out what is going on

function convertToPercentage(decimalNumber) {
const decimalNumber = 0.5;
//const decimalNumber = 0.5; <--- this line causes the syntaxError.
const percentage = `${decimalNumber * 100}%`;

return percentage;
}

console.log(decimalNumber);
//console.log(decimalNumber); <--- this line causes the ReferenceError.

// =============> write your explanation here
//1. Inside the function: Just like the previous example, the parameter `decimalNumber` acts as a local variable. Trying to redeclare it with `const decimalNumber = 0.5;` causes a crash.
// Additionally, hardcoding 0.5 defeats the purpose of having a parameter at all.

// 2. Outside the function: The variable `decimalNumber` is "scoped" to the function. It doesn't exist in the outside world. When `console.log(decimalNumber)` runs globally, JavaScript doesn't know what it is,
// causing a ReferenceError. You need to call the function and pass the number as an argument instead.

// Finally, correct the code to fix the problem
// =============> write your new code here

function convertToPercentage(decimalNumber) {
const percentage = `${decimalNumber * 100}%`;
return percentage;
}
console.log(convertToPercentage(0.5));
9 changes: 7 additions & 2 deletions Sprint-2/1-key-errors/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,22 @@
// this function should square any number but instead we're going to get an error

// =============> write your prediction of the error here

// Prediction: The code would likely return a syntax error because the parameter in the () is '3' and not 'num'.
function square(3) {
return num * num;
}

// =============> write the error message here
// SyntaxError: Unexpected number

// =============> explain this error message here

// A defined function in a () must be variable names, not values.
// Finally, correct the code to fix the problem

// =============> write your new code here


function square(num) {
return num * num;
}
console.log(square(3));
10 changes: 10 additions & 0 deletions Sprint-2/2-mandatory-debug/0.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Predict and explain first...

// =============> write your prediction here
// 320

function multiply(a, b) {
console.log(a * b);
Expand All @@ -10,5 +11,14 @@ console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`);

// =============> write your explanation here

/*Explanation: The `multiply` function calculates `a * b` and immediately prints it to
the console, but it doesn't use the `return` keyword to hand the value back.

// Finally, correct the code to fix the problem
// =============> write your new code here

function multiply(a, b) {
return a * b;
}

console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`);
12 changes: 12 additions & 0 deletions Sprint-2/2-mandatory-debug/1.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Predict and explain first...
// =============> write your prediction here

//The sum would return as undefined.

function sum(a, b) {
return;
a + b;
Expand All @@ -9,5 +11,15 @@ function sum(a, b) {
console.log(`The sum of 10 and 32 is ${sum(10, 32)}`);

// =============> write your explanation here

// Explanation: The return keyword is used and the functions is not executed because the expression is on a different line
//which means the computer would not run the expression alongside the return keyword.

// Finally, correct the code to fix the problem
// =============> write your new code here

function sum(a, b) {
return a + b;
}

console.log(`The sum of 10 and 32 is ${sum(10, 32)}`);
21 changes: 21 additions & 0 deletions Sprint-2/2-mandatory-debug/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

// Predict the output of the following code:
// =============> Write your prediction here
//I predict the code will output the number '3' for every function call.

const num = 103;

Expand All @@ -15,10 +16,30 @@ console.log(`The last digit of 806 is ${getLastDigit(806)}`);

// Now run the code and compare the output to your prediction
// =============> write the output here

//OUTPUT: '3' was the output for every function call, which is not what I predicted.

// Explain why the output is the way it is
// =============> write your explanation here

// The output is the way it is because the first line of the code a const statement was declared with the value of 103,
// and the function getLastDigit() is using that constant instead of the argument passed.

// Finally, correct the code to fix the problem
// =============> write your new code here

function getLastDigit(num) {
return num.toString().slice(-1);
}

console.log(`The last digit of 42 is ${getLastDigit(42)}`);
console.log(`The last digit of 105 is ${getLastDigit(105)}`);
console.log(`The last digit of 806 is ${getLastDigit(806)}`);

// This program should tell the user the last digit of each number.

// Explain why getLastDigit is not working properly - correct the problem

// This function did not work because javascript looks for the variable inside it and as it was not declared in the function '()' it went looking for num in the global code
// and locked onto the declared constant value of num = 103 instead of running the passed arguments individually.
// the code as been corrected by removing the const num = 103 and added num as a parameter to the function getLastDigit(num) so it can now take the arguments individually and return the right output.
6 changes: 6 additions & 0 deletions Sprint-2/3-mandatory-implement/1-bmi.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,11 @@
// It should return their Body Mass Index to 1 decimal place

function calculateBMI(weight, height) {
const bmi = weight / (height * height);
return Math.round(bmi * 10) / 10;
}

console.log(calculateBMI(90, 1.85)); // should return 26.3

// return the BMI of someone based off their weight and height
}
Loading
Loading