Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c32281a
Explain assignment operator
abmhts Sep 15, 2026
5eefab9
Generate initials from name strings
abmhts Sep 15, 2026
689213b
Extract dir and ext from file path
abmhts Sep 15, 2026
1716943
fix: move cityOfBirth declaration before console log
abmhts Sep 15, 2026
d8c52f7
use "let" for reassigning age variable
abmhts Sep 15, 2026
52e2cb3
add comments for human-readable instructions
abmhts Sep 15, 2026
64003b5
Explain random number generation with Math.random and Math.floor
abmhts Sep 15, 2026
7fdd13f
Fix extracting last 4 digits from card number
abmhts Sep 16, 2026
46da3bd
Rename clock time variables starting with numbers
abmhts Sep 16, 2026
8cc6b17
Convert price strings to numbers before calculating
abmhts Sep 16, 2026
f33a665
Calculate movie length in Hours:Minutes:Seconds
abmhts Sep 16, 2026
60283cb
Convert pence to pounds
abmhts Sep 16, 2026
fb61446
Chrome console exercise
abmhts Sep 16, 2026
581eb7b
Chrome console exercise (objects)
abmhts Sep 17, 2026
b5135ac
Update 2-initials.js
abmhts Sep 17, 2026
89a16d1
Update-Explain random number generation with Math.random and Math.floor
abmhts Sep 17, 2026
6067629
update-use "let" for reassigning age variable
abmhts Sep 17, 2026
a57dcc9
update-
abmhts Sep 17, 2026
cc7acf9
update- Rename clock time variables starting with numbers
abmhts Sep 17, 2026
be74be1
Update - add comments for human-readable instructions.
abmhts Sep 19, 2026
f142f39
Update- convert price strings to numbers before calculating
abmhts Sep 19, 2026
304536e
update - Convert pence to pounds
abmhts Sep 19, 2026
1295cd4
update1- Rename clock time variables starting with numbers
abmhts Sep 19, 2026
fa97c40
update-Convert price strings to numbers before calculating
abmhts Sep 19, 2026
9e45bc7
format Sprint-2 with Prettier
abmhts Sep 19, 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-2/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

// Line 3 takes the current value of count and adds 1 to it,and uses = to assign new value back to count,so the new value will be 1.
4 changes: 3 additions & 1 deletion Sprint-2/1-key-exercises/2-initials.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ const 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.

const initials = ``;
const initials =
firstName.charAt(0) + middleName.charAt(0) + lastName.charAt(0);
console.log(initials);

// https://www.google.com/search?q=get+first+character+of+string+mdn
6 changes: 3 additions & 3 deletions Sprint-2/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 = filePath.slice(0, lastSlashIndex);
const ext = filePath.slice(filePath.lastIndexOf(".") + 1);

// https://www.google.com/search?q=slice+mdn
// https://www.google.com/search?q=slice+mdn
13 changes: 13 additions & 0 deletions Sprint-2/1-key-exercises/4-random.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@ const maximum = 100;
const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;

// In this exercise, you will need to work out what num represents?
//num represents a randomly generated whole number between 1 and 100.

// Try breaking down the expression and using documentation to explain what it means
// Math.random() generates a random decimal number greater than or equal to 0 and less than 1. Multiplying by 100 gives a number between 0 and up to, but not including 100.
// Math.floor() always rounds down and returns the largest integer less than or equal to a given number in this case between 0 and 99. Finally, adding 1 changes the range to 1–100.
// Math.floor(Math.random() * (maximum - minimum + 1))
// Math.floor(Math.random() * (100 - 1 + 1))
// Math.floor(Math.random() * 100)
// Math.random give any random number between 0 to 1 example 0.225 * 100 = 22.5
// Math.floor rounds that number to a whole number so 22.5 will become 22
// (22) + minimum
// 22 + 1
// 23

// It will help to think about the order in which expressions are evaluated
// Try logging the value of num and running the program several times to build an idea of what the program is doing
4 changes: 2 additions & 2 deletions Sprint-2/2-mandatory-errors/0.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
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?
6 changes: 5 additions & 1 deletion Sprint-2/2-mandatory-errors/1.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
// trying to create an age variable and then reassign the value by 1

const age = 33;
//const age = 33;
//age = age + 1;

let age = 33;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file does not run, check age declaration

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected. Thank you

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fix is right and the file runs now. This section also asks you to interpret the error and explain why it happened, and there is nothing written down here yet. What did node print before you changed it, and why?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn’t see the section asking me to explain the error, so perhaps I’m looking in the wrong place.
Node returned TypeError: Assignment to constant variable because const cannot be reassigned, so I used let instead. My apologies if I’ve misunderstood the task.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You were not looking in the wrong place. This file does not ask for it anywhere, only the section heading in the Sprint-2 README does. No apology needed. Your explanation here is right, so that is done.

age = age + 1;
console.log(age);
6 changes: 5 additions & 1 deletion Sprint-2/2-mandatory-errors/2.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
// Currently trying to print the string "I was born in Bolton" but it isn't working...
// what's the error ?
//'cityOfBirth' cannot access before initialization

// console.log(`I was born in ${cityOfBirth}`);
// const cityOfBirth = "Bolton";

console.log(`I was born in ${cityOfBirth}`);
const cityOfBirth = "Bolton";
console.log(`I was born in ${cityOfBirth}`);
11 changes: 10 additions & 1 deletion Sprint-2/2-mandatory-errors/3.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
const cardNumber = 4533787178994213;
// const cardNumber = 4533787178994213;
// const last4Digits = cardNumber.slice(-4);

const cardNumber = "4533787178994213";
const last4Digits = cardNumber.slice(-4);
console.log(last4Digits);

// The last4Digits variable should store the last 4 digits of cardNumber
// However, the code isn't working

// Before running the code, make and explain a prediction about why the code won't work
//slice() not work with number

// Then run the code and see what error it gives.
//cardNumber.slice is not a function

// 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
7 changes: 5 additions & 2 deletions Sprint-2/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 12HourClockTime = "8:53pm";
// const 24hourClockTime = "20:53";

const ClockTime12Hour = "8:53pm";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The renaming is right and the file runs. Same as 1.js though, there is no explanation of the error. What did node say before, and what was wrong with the original two names?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Node returned SyntaxError: Invalid or unexpected token. Both variable names started with a number, which JavaScript does not allow.
Again, I might be looking in the wrong place or have misunderstood the task.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, and your explanation is correct. Nothing else needed on this one.

const ClockTime24Hour = "20:53";
19 changes: 15 additions & 4 deletions Sprint-2/3-mandatory-interpret/1-percentage-change.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ let carPrice = "10,000";
let priceAfterOneYear = "8,543";

carPrice = Number(carPrice.replaceAll(",", ""));
priceAfterOneYear = Number(priceAfterOneYear.replaceAll("," ""));
priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",", ""));

const priceDifference = carPrice - priceAfterOneYear;
const percentageChange = (priceDifference / carPrice) * 100;
Expand All @@ -12,11 +12,22 @@ 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

// 5 function calls
// -Number(carPrice.replaceAll(",", ""))
// -replaceAll(",", "")
// -Number(priceAfterOneYear.replaceAll("," ""))
// -replaceAll("," "")
// -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?

// -Line 5
// -missing ) after argument list
// -why: replaceAll() needs two arguments separated by a comma.
// -fix: by adding comma replaceAll(",", "")
// c) Identify all the lines that are variable reassignment statements
// line 4 and 5

// d) Identify all the lines that are variable declarations

// line 1,2,7 and 8
// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression?
// -First removing the comma "10,000"
// -Second convert string into number 10000
11 changes: 7 additions & 4 deletions Sprint-2/3-mandatory-interpret/2-time-format.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@ 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?

// 6
// b) How many function calls are there?

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

// Remainder operator : calculates the remainder after dividing the movie length in seconds by 60
// d) Interpret line 4, what does the expression assigned to totalMinutes mean?
// It takes the remaining seconds away from the total movie length and divides by 60 to turn the seconds into minutes.

// e) What do you think the variable result represents? Can you think of a better name for this variable?

// - It represents the movie duration in hours, minutes, and seconds.
// - const movieDuration
// f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer
// The code works with positive whole numbers for movieLength and changes them into hours, minutes, and seconds. Decimal or negative numbers may not give the correct result.
21 changes: 19 additions & 2 deletions Sprint-2/3-mandatory-interpret/3-to-pounds.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ const penceString = "399p";

const penceStringWithoutTrailingP = penceString.substring(
0,
penceString.length - 1
penceString.length - 1,
);

const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0");
const pounds = paddedPenceNumberString.substring(
0,
paddedPenceNumberString.length - 2
paddedPenceNumberString.length - 2,
);

const pence = paddedPenceNumberString
Expand All @@ -25,3 +25,20 @@ console.log(`£${pounds}.${pence}`);

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

// 1. const penceString = "399p" // Stores "399p" in a variable called penceString so the program can work with the price.
// 2. const penceStringWithoutTrailingP = penceString.substring(
// 0,
// penceString.length - 1);
// Removes the "p" from the end of "399p", leaving "399"
// 3. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0");
//Adds a "0" at the start if there are less than 3 digits.
// 4. const pounds = paddedPenceNumberString.substring(
// 0,
// paddedPenceNumberString.length - 2); //gets the digits before the last two to find the pounds.

// 5. const pence = paddedPenceNumberString
// .substring(paddedPenceNumberString.length - 2)
// .padEnd(2, "0"); //gets the last two digits to find the pence.

// 6. console.log(`£${pounds}.${pence}`); //Combines the pounds and pence and print the final price as £3.99
7 changes: 7 additions & 0 deletions Sprint-2/4-stretch-explore/chrome.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,14 @@ In the Chrome console, invoke the function `alert` with one argument, the string

What effect does calling the `alert` function have?

- A popup with chrome:/new-tab-page says "hello world"

Now try invoking the function `prompt` with a string input of `"What is your name?"` - store the return value of your call to `prompt` in an variable called `myName`.

What effect does calling the `prompt` function have?

- A popup with chrome:/new-tab-page says "What is your name?" with a text box to type your name.

What is the return value of `prompt`?

- "myname" which is the value that i entered.
14 changes: 13 additions & 1 deletion Sprint-2/4-stretch-explore/objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,23 @@ Open the Chrome devtools Console, type in `console.log` and then hit enter

What output do you get?

- log() { [native code] }

Now enter just `console` in the Console, what output do you get back?

- console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …}

Try also entering `typeof console`

Answer the following questions:
- 'object'
Answer the following questions:

What does `console` store?

- console stores different functions you can use to display or check information in the console.

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

- console.log() method accepts any value and outputs that the given value to the console.
- console.assert() takes a boolean first and displays the message only when the condition is false.
- "." means to access or call something inside this object either .log() or .assert() function.
4 changes: 2 additions & 2 deletions Sprint-2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This README will guide you through the different sections for this week.

## 1 Exercises

In this section, you'll have a short program and task. Some of the syntax may be unfamiliar - in this case, you'll need to look things up in documentation.
In this section, you'll have a short program and task. Some of the syntax may be unfamiliar - in this case, you'll need to look things up in documentation.

https://developer.mozilla.org/en-US/docs/Web/JavaScript

Expand All @@ -28,7 +28,7 @@ You must use documentation to make sense of anything unfamiliar - learning how t

You can also use `console.log` to check the value of different variables in the code.

https://developer.mozilla.org/en-US/docs/Web/JavaScript
https://developer.mozilla.org/en-US/docs/Web/JavaScript

## 4 Explore - Stretch 💪

Expand Down
Loading