Repository navigation
London | 26-ITP-Sep | Rawan Almutairi | Sprint 2 | JavaScript exercises #1628
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Great job! This is a very clean and clever solution using template literals and bracket notation. Quick question: Is there another built-in string method besides bracket notation you could use to get the first character?
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. string.prototype.replace() |
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Spot-on implementation for extracting Quick question: When using
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we omit the first index, the string won't break but will go to the wrong location; in the case of omitting the 0 index, it will delete anything before the last index ''/' |
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Clear breakdown of the math logic! Just remember the order: Quick question: What purpose does the
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I had to search for this one to understand it. Math.random() generates a decimal that ranges between the values 0 and 0.99999, so when we try to scale it up Math.random() will generate values between 0 and 8.9999, so it doesn't include 9. This becomes an issue when we use Math.floor as it will round it to the nearest whole number, and because it doesn't include the number 9, it will round down from 0 to 8. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,3 +7,16 @@ const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; | |
| // Try breaking down the expression and using documentation to explain what it means | ||
| // 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 | ||
|
|
||
|
|
||
| //here starts my learning | ||
|
|
||
| // first const minimun, const maximum are the variables | ||
| // = the assignmen operator | ||
| // what comes after = is what the variable will store | ||
| // Math.floor is a method and here we are telling it that its argument is to use the random method | ||
| // and multiply the result before rounding with the maximum and minimum variables we created | ||
| // * is a multiplication operator | ||
| // to understand what is going on we need to understand what the floor and random methods do | ||
| //Math.floor (rounds down to the nearest whole number) and than pass it to Math.floor | ||
| // we are asking the program to round whatever result we have to the nearest whole number | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Two things here.
Your thread reply already explains why the |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,2 +1,4 @@ | ||
| 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? | ||
|
|
||
| //we use slash to comment it. So the computer doesn't excute the text. |
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Spot-on distinction between Quick question: Is there a shorthand assignment operator you could use instead of writing
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes, += |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,9 @@ | ||
| // trying to create an age variable and then reassign the value by 1 | ||
|
|
||
| const age = 33; | ||
| let age = 33; | ||
| age = age + 1; | ||
|
|
||
| //we change the variable declaration and reassign its value | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Your fix is right. This section also wants the error message node gives for the original code. To see it:
Do the same in 4.js (remove the |
||
| // variable declaration keywords | ||
| // const can't be used to reassign a value | ||
| // let can be used to reassign a value | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Accurate explanation! Trying to use Quick question: Do you know the technical term for the area in the code before a |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,3 +3,5 @@ | |
|
|
||
| console.log(`I was born in ${cityOfBirth}`); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Your explanation on line 7 is right. JavaScript runs the file from top to bottom, and line 4 uses So what order should these two lines be in? Change it, run |
||
| const cityOfBirth = "Bolton"; | ||
|
|
||
| // the variable was declared after the print function so the program doesn't know what is cityofBirth. Therefore it can't perform the print function or excuted before declaring the variable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not quite a ReferenceError here— Quick question: What method can you call on
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. toString() |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,3 +7,4 @@ 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 | ||
| // in this case its a reference error the program is trying to access a value that wasn't declared. In this case a variable. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This one isn't a ReferenceError. Run the file and look at the last line of the error: node says
|
||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Spot-on explanation! Variable names cannot start with numbers. Quick question: While starting with a capital letter works syntactically, what is the standard JavaScript naming convention (case style) usually used for variables made of multiple words like this?
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. camelCase |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,2 +1,6 @@ | ||
| const 12HourClockTime = "8:53pm"; | ||
| const 24hourClockTime = "20:53"; | ||
| const TwelveHourClockTime = "8:53pm"; | ||
| const TwentyFourHourClockTime = "20:53"; | ||
| // an identifier or keyword can't follow a numeric literal. We fix this by writing the numbers in words format | ||
|
|
||
| //const 12HourClockTime = "8:53pm"; | ||
| //const 24hourClockTime = "20:53"; |
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Spot-on answers! Your breakdown of line 5's syntax error, reassignments, and the purpose of Quick question: Why is
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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; | ||
|
|
@@ -11,12 +11,16 @@ 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 | ||
|
|
||
| // a) How many function calls are there in this file? Write down all the lines where a function call is made | ||
| //5 FUNCTION calls. Line 4, 5, 10. | ||
| // 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 coming from line 5, column 61. Thhere is nothing seprating the two indexes. A comma can be used to seprate them. | ||
| // c) Identify all the lines that are variable reassignment statements | ||
|
|
||
| //Two lines 4 and 5 | ||
| // d) Identify all the lines that are variable declarations | ||
|
|
||
| //four lines 1,2,7,8 | ||
| // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? | ||
| //The replace.all method is used to include the car price and the price after one year of depreciation. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You've explained What changes? Write one sentence about what |
||
| //The purpose of the expression is to take the price string and search for every comma and replace it | ||
| // we are saying replace this "," , with this "" and because of the empty string it means without a comma. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Spot-on analysis! Your observation about leading zeros triggering an octal syntax error is a brilliant and advanced catch. Quick question: If
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since the digit zero is before the 5. We create a numerical string, then convert the string to a numerical value or add the zero digit as a string before the number or we modify the function to include strings so we can manipulate the numbers. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,15 +11,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? | ||
|
|
||
| // a) How many variable declarations are there in this program? | ||
| // 6 declarations | ||
| // b) How many function calls are there? | ||
|
|
||
| // 1 function call in line 10 | ||
| // c) Using documentation, explain what the expression movieLength % 60 represents | ||
| // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators | ||
|
|
||
| // "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? | ||
|
|
||
| // it means the number of minutes in a film is calculated by calculating the number of seconds in the film | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. c) and d) need the numbers from this program. Add these two lines after line 4 and run the file: Then fill in: Delete the two |
||
| // e) What do you think the variable result represents? Can you think of a better name for this variable? | ||
|
|
||
| //the variable result represesnt the length of the film in hours,minutes,and seconds. A better name would be movie time. | ||
| // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer | ||
| // However, it doesn't work when the leading number of a decimal is zero like this 08784 because it interpreted as octal literal and 8 can't work in octal numeration | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Change line 1 to each of these, run the file, and write down what it prints: |
||
| //"The octal number system is a base-8 math and computing system that uses only eight digits: 0, 1, 2, 3, 4, 5, 6, and 7" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Great step-by-step breakdown! You clearly traced how Quick question: Why is
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It specify the starting values so we don't have random numbers that could cause a bug in the program. We restrict it. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -25,3 +25,33 @@ 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 | ||
| //); | ||
| //INITIALISES A STRING VARIABLE AND ASSIGN ITS VALUE USEING THE penceString.substring | ||
| // so what happins is penceString.substring is using the value from the application or calculation of ( | ||
| //0, | ||
| // penceString.length - 1 | ||
| //); | ||
| // we are tillING IT TO start from the first inex (0) and not to include index 3 which penceString.length than use the operator - to subtract 1 | ||
| // we intialise a string variable const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); and assign its value to be | ||
| //const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); | ||
| //const pounds = paddedPenceNumberString.substring( | ||
| // 0, | ||
| //paddedPenceNumberString.length - 2 | ||
| //); | ||
| // we assign the value to be starting with MINUMUM LENGTH IS 3 CHARACTERS than if not ADD THE VALUE 0 TO THE BEGINNING | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Your steps say which method is used, but not what it gives. Write the value each line produces for Now do the same for the rest, filling in the Then change line 1 to |
||
| // we initialise a variable const pounds and assign its value to be the value from using paddedPenceNumberString.substring | ||
| //paddedPenceNumberString.substring value is found by starting from the first index WITH LENGTH 3 and ending with paddedPenceNumberString.length subtracted by the operator 2 | ||
|
|
||
| // IN THIS LINE const pence = paddedPenceNumberString | ||
| const pence = paddedPenceNumberString | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Lines 49 to 53 are copies of the program's own code (lines 14 to 18), so Delete lines 48 to 53, then run |
||
| .substring(paddedPenceNumberString.length - 2) | ||
| .padEnd(2, "0"); | ||
|
|
||
| console.log(`£${pounds}.${pence}`); | ||
| // we initialise a string variable and assign its value to be the paddedPenceNumberString variable with the value from using the substring method | ||
| // the substring method is calculated by using the length property or the value of paddedPenceNumberString subtracting it by 2 using operator - | ||
| // than using the method .padEnd to specify that if the length is not two add the value 0 | ||
| // last we ask the console to print the values in pounds and pence | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great job! You correctly identified how the variable is initialized and reassigned.
Quick question: How would you specifically describe the role of the
=sign in that second line?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
//Line two we see the variable count using the = sign to assign a new value whcih is count previous value + 1
//the equal sign in line two is assigned operator that stores the new value to the variable