Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 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,4 @@ 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 is adding 1 to the initial values of count which is 0 and reassing the new value (1+0 =1) to count
2 changes: 2 additions & 0 deletions Sprint-1/1-key-exercises/2-initials.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ let lastName = "Johnson";
// 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 = ``;
initials = firstName.substring(0, 1) + middleName.substring(0, 1) + lastName.substring(0, 1)
console.log(initials)

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

7 changes: 5 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,10 @@ 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.substring(0, 44);
console.log(`The dir part of the filePath variable is ${dir}`);

const lastDotIndex = filePath.lastIndexOf(".");
const ext = filePath.slice(lastDotIndex + 1);
console.log(`The ext of ${filePath} is ${ext}`);
// https://www.google.com/search?q=slice+mdn
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?

//ANSWER:
//We change the two lines to comments by using double forward slash (//) at the beginning of the two lines.
7 changes: 7 additions & 0 deletions Sprint-1/2-mandatory-errors/1.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,10 @@

const age = 33;
age = age + 1;

// ANSWER
// In the solution above, 'age' is a constant variable becuse the keyword 'const' was used with it hence the value cannot change.

// Solution:
let age = 33;
let age = age + 1;
8 changes: 8 additions & 0 deletions Sprint-1/2-mandatory-errors/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,11 @@

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

//ANSWER:
// The 'cityOfBirth' was not assigned before the console.log statement
// Solution will be to switch the lines as shown below:


const cityOfBirth = "Bolton";
console.log(`I was born in ${cityOfBirth}`);
8 changes: 8 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,11 @@ 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

//Predcition: slice() probably only work on string. Possible solution will be to put cardNumber in quotes or use String()
// Why does it give this error? It says 'cardNumber.slice is not a function'
// Is this what I predicted? No
// If not, what's different? Since cardNumber is numeric, it shoulf be changed to string fot slice() to work.

const cardNumber = "4533787178994213";
const last4Digits = cardNumber.slice(-4);
11 changes: 10 additions & 1 deletion Sprint-1/2-mandatory-errors/4.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
const 12HourClockTime = "20:53";
const 24hourClockTime = "08:53";
const 24hourClockTime = "08:53";

//In naming variable, numbers are not allowed to preceed variable names.

// Error message: An identifier or keyword cannot immediately follow a numeric literal.

// SUggested Solutions:

const ClockTime12Hour = "20:53";
const ClockTime24hour = "08:53";
9 changes: 5 additions & 4 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,12 @@ 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

//ANSWER: Four function calls. Two function calls in line 4 & two function calls in line 5
// 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?

//ANSWER: The comma in the replaceAll() function in Line 5 is missing. Put the comma back in to fix it.
// c) Identify all the lines that are variable reassignment statements

//ANSWER: Lines that are variable reassignment statements are Lines 4 & 5.
// d) Identify all the lines that are variable declarations

//ANSWER: Variable declarations line: 1,2,7,& 8
// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression?
//ANSWER: The expression first removes the comma(,) in carPrice and then converts it to a number.
11 changes: 6 additions & 5 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,15 @@ 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?

//ANSWER: There were six variable declarations
// b) How many function calls are there?

//ANSWER: There were no function calls except for the log() function
// c) Using documentation, explain what the expression movieLength % 60 represents
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators

//ANSWER: The remainder (%) operator returns the remainder left over when one operand is divided by a second operand. It always takes the sign of the dividend.
// d) Interpret line 4, what does the expression assigned to totalMinutes mean?

//ANSWER: Line 4 with find the remainder whenmovieLength is divided by 60 and assigns the remainder to remainingSeconds (24)
// e) What do you think the variable result represents? Can you think of a better name for this variable?

//ANSWER: The variable result represents the total lenth of the movie which shows the total hours, minutes and seconds remain in string format.
// f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer
//ANSWER: The code semed to work for all values of movieLength.
9 changes: 9 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,12 @@ console.log(`£${pounds}.${pence}`);

// To begin, we can start with
// 1. const penceString = "399p": initialises a string variable with the value "399p"
// 2. Lines 3 to 6: extracts "399" as a string and assigns the values to penceStringWithoutTrailingP.
// It uses the substring to extract from position 0 to 3.
// 3. Line 8: padStart is used to pad the values in penceStringWithoutTrailingP with "0" from the start of the value to make up a length of 3.
// Since penceStringWithoutTrailingP already has "399" with a length of 3, no padding is done.
// 4. Line 9 to 12: substring is used to extract from paddedPenceNumberString, starting from position 0 to 1 giving 3 which is stored in the variable pounds.
// 5. Line 14 to 16: substring is used to extract from paddedPenceNumberString, starting from position 1 to the end givin "99"
// "99" is padded with "0" from the end of the value to make a length of 2 but sincw "99" already has a length of 2, no padding is done.
// "99" is assigned to the variable pence.
// 6. Line 18: uses console.log() to print the values of pounds and pence preceeded by "£" and separated by "." to give "£3.99"
7 changes: 7 additions & 0 deletions Sprint-1/4-stretch-explore/chrome.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,15 @@ In the Chrome console,
invoke the function `alert` with an input string of `"Hello world!"`;

What effect does calling the `alert` function have?
## Got "chrome://new-tab-page says" popup
## 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?
## Got "chrome://new-tab-page says" popup
## Got "What is your name?"
## Got a box for input
What is the return value of `prompt`?
## promt: ƒ prompt() { [native code] }
## myName: Ayo
12 changes: 9 additions & 3 deletions Sprint-1/4-stretch-explore/objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,19 @@ In this activity, we'll explore some additional concepts that you'll encounter i

Open the Chrome devtools Console, type in `console.log` and then hit enter

What output do you get?
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`

## 'object'
Answer the following questions:

What does `console` store?
## Objects
## console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …}
What does the syntax `console.log` or `console.assert` mean? In particular, what does the `.` mean?
## console.log - Prints the text to the Console as a log message
## console.assert() writes an error message to the console if the assertion is false
## The dot(.) allows the access of the log method inside the console object
12 changes: 12 additions & 0 deletions Sprint-2/1-key-errors/0.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Predict and explain first...
// =============> write your prediction here
// Prediction: The function capitalise is possibly meant to capitalise the first letter in a string

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



// =============> write your explanation here
// The 'str' variable on the left hand side is the same used in the function name implementation which should not be.
// =============> write your new code here

function capitalise(str) {
let capFunction = `${str[0].toUpperCase()}${str.slice(1)}`;
return capFunction;
}

let cap = capitalise('name')
console.log(cap)
11 changes: 11 additions & 0 deletions Sprint-2/1-key-errors/1.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
// Predict and explain first...
// The functions takes a decimal number as input and converts it to percentage by multiplying by 100

// Why will an error occur when this program runs?
// =============> write your prediction here
// I suspect than an error will occur

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

Expand All @@ -18,3 +20,12 @@ console.log(decimalNumber);

// Finally, correct the code to fix the problem
// =============> write your new code here
function convertToPercentage(decimalNumber) {
//const decimalNumber = 0.5;
const percentage = `${decimalNumber * 100}%`;
return percentage;
}

//console.log(decimalNumber);
let test = convertToPercentage(0.5)
console.log(test);
11 changes: 8 additions & 3 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
// The error is likely to be caused by square(3), '3' is supposed to be replaced by a string representing the number.

function square(3) {
return num * num;
}

// =============> write the error message here

// function square(3) {
// ^
// SyntaxError: Unexpected number
// =============> explain this error message here

// The muber '3' should be used when calling the function and it should not be used as a parameter.
// Finally, correct the code to fix the problem

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


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

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

// It may likely have issues as console.log() is within function implementation, instead of using'return'
function multiply(a, b) {
console.log(a * b);
}

console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`);

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

// Instead of having console.log() is within function implementation, it should be replaced with 'return'
// 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)}`);
8 changes: 7 additions & 1 deletion Sprint-2/2-mandatory-debug/1.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Predict and explain first...
// =============> write your prediction here

// An error will result becasue of the ';' between return and a + b
function sum(a, b) {
return;
a + b;
Expand All @@ -9,5 +9,11 @@ function sum(a, b) {
console.log(`The sum of 10 and 32 is ${sum(10, 32)}`);

// =============> write your explanation here
// The ideal statement should be 'return a + b; ' but this statement is separated by ';'
// 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)}`);
28 changes: 25 additions & 3 deletions Sprint-2/2-mandatory-debug/2.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Predict and explain first...

// Predict the output of the following code:
// =============> Write your prediction here
// =============> Write your prediction here: It may run but give incorrect results because of const num & no parameter specified

const num = 103;

Expand All @@ -14,11 +14,33 @@ console.log(`The last digit of 105 is ${getLastDigit(105)}`);
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
// =============> write the output here:
// The last digit of 42 is 3
// The last digit of 105 is 3
// The last digit of 806 is 3
// Explain why the output is the way it is
// =============> write your explanation here
// =============> write your explanation here;
// num is a constant variable, it's value cannot change.
// Finally, correct the code to fix the problem
// =============> write your new code here
let num = 103;

function getLastDigit() {
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
// getLastDigit is not working properly becuase the value for num is fixed at '103'
// Corrected program:

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)}`);
3 changes: 2 additions & 1 deletion Sprint-2/3-mandatory-implement/1-bmi.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@

function calculateBMI(weight, height) {
// return the BMI of someone based off their weight and height
}
return Math.round((weight) / (height ** 2)).toFixed(1)
}
7 changes: 7 additions & 0 deletions Sprint-2/3-mandatory-implement/2-cases.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,10 @@
// You will need to come up with an appropriate name for the function
// Use the MDN string documentation to help you find a solution
// This might help https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase
function upCase(strCar) {
let result = strCar.toUpperCase().replaceAll(" ", "_");
return result;
}

console.log(upCase("hello there"))
console.log(upCase("lord of the rings"))
25 changes: 25 additions & 0 deletions Sprint-2/3-mandatory-implement/3-to-pounds.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,28 @@
// You will need to declare a function called toPounds with an appropriately named parameter.

// You should call this function a number of times to check it works for different inputs

function toPounds(money) {
const moneyWithoutTrailingP = money.substring(
0,
money.length - 1
);

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

const pence = paddedPenceNumberString
.substring(paddedPenceNumberString.length - 2)
.padEnd(2, "0");
result = pounds + "." + pence;
res = `£${pounds}.${pence}`;
return res;

}

console.log(toPounds("399p"))

console.log(toPounds("1099p"))
Loading
Loading