diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 000000000..8bae2d56e Binary files /dev/null and b/.DS_Store differ diff --git a/exercises/B-hello-world/README.md b/exercises/B-hello-world/README.md index 8c704fb43..67bbfa568 100644 --- a/exercises/B-hello-world/README.md +++ b/exercises/B-hello-world/README.md @@ -15,4 +15,7 @@ Inside of `exercise.js` there's a line of code that will print "Hello world!". - Try to `console.log()` something different. For example, 'Hello World. I just started learning JavaScript!'. - Try to console.log() several things at once. - What happens when you get rid of the quote marks? +I will recive this SyntaxError: missing ) after argument list + - What happens when you console.log() just a number without quotes? +Just that number will be printed without any error. diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..68cb82148 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,4 @@ console.log("Hello world"); +console.log("Hello World. I just started learning JavaScript!"); +console.log("I am so happy to learn new programming language"); +console.log(123); diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..1dd1a4fbe 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,5 @@ // Start by creating a variable `greeting` - +let greeting="Hello World" +console.log(greeting); +console.log(greeting); console.log(greeting); diff --git a/exercises/D-strings/exercise.js b/exercises/D-strings/exercise.js index 2cffa6a81..0a862579e 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,5 @@ // Start by creating a variable `message` - +let message="This is Laleh"; +let massageType=typeof message; console.log(message); +console.log(massageType); diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..079df8cc4 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,3 +1,4 @@ // Start by creating a variable `message` - -console.log(message); +let greeting="Hello, My name is " +let myName="Laleh."; +console.log(greeting+myName); diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..a678080dd 100644 --- a/exercises/F-strings-methods/exercise.js +++ b/exercises/F-strings-methods/exercise.js @@ -1,3 +1,6 @@ // Start by creating a variable `message` +let myName="Laleh"; -console.log(message); +let myNameLength=myName.length; + +console.log("My name is " + myName + " and my name is " + myNameLength + " characters long"); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..5838acc78 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,14 @@ -const name = " Daniel "; +const myName = " Daniel "; + + +let myNameLength = myName.length; + +console.log( + "My name is " + + myName.trim() + + " and my name is " + + myNameLength + + " characters long" +); + -console.log(message); diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..804cb0370 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,7 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` + +let numberOfStudents=30; +let numberOfMentors=5; +let sum = numberOfStudents + numberOfMentors; + +console.log(sum); diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..f079a5b7d 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,11 @@ -var numberOfStudents = 15; -var numberOfMentors = 8; +let numberOfStudents = 15; +let numberOfMentors = 8; +let sum = numberOfStudents+numberOfMentors; + +let studentPercentage = (numberOfStudents/sum)*100; +let MentorsPercentage = (numberOfMentors/sum)*100; + +console.log("The percentage of student is " + Math.round(studentPercentage)+"%"); +console.log("The percentage of mentor is " + Math.round(MentorsPercentage)+"%"); + + diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..53c93cdc2 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,13 @@ -function halve(number) { +function half(number) { // complete the function here + return number/2; } -var result = halve(12); +var result = half(12); +var result1 = half(6); console.log(result); +console.log(result1); + + + diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js index 82ef5e780..a57a8d69a 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,5 +1,5 @@ function triple(number) { - // complete function here + return number*3; } var result = triple(12); diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..0f66ec66a 100644 --- a/exercises/K-functions-parameters/exercise.js +++ b/exercises/K-functions-parameters/exercise.js @@ -1,9 +1,9 @@ // Complete the function so that it takes input parameters -function multiply() { - // Calculate the result of the function and return it +function multiply(num1,num2) { + return num1*num2; } -// Assign the result of calling the function the variable `result` + var result = multiply(3, 4); console.log(result); diff --git a/exercises/K-functions-parameters/exercise2.js b/exercises/K-functions-parameters/exercise2.js index db7a8904b..3bf7d1e95 100644 --- a/exercises/K-functions-parameters/exercise2.js +++ b/exercises/K-functions-parameters/exercise2.js @@ -1,5 +1,8 @@ // Declare your function first +function divide(num1,num2){ + return num1/num2; +} var result = divide(3, 4); console.log(result); diff --git a/exercises/K-functions-parameters/exercise3.js b/exercises/K-functions-parameters/exercise3.js index 537e9f4ec..f2497c9e6 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,5 +1,7 @@ // Write your function here - +function createGreeting (name){ + return "hello my name is "+name +} var greeting = createGreeting("Daniel"); console.log(greeting); diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..35996db85 100644 --- a/exercises/K-functions-parameters/exercise4.js +++ b/exercises/K-functions-parameters/exercise4.js @@ -1,5 +1,8 @@ // Declare your function first - +function sumFn(num1,num2){ + return num1+num2; +} // Call the function and assign to a variable `sum` +let sum = sumFn(13, 124); console.log(sum); diff --git a/exercises/K-functions-parameters/exercise5.js b/exercises/K-functions-parameters/exercise5.js index 7c5bcd605..3e65b3602 100644 --- a/exercises/K-functions-parameters/exercise5.js +++ b/exercises/K-functions-parameters/exercise5.js @@ -1,5 +1,7 @@ // Declare your function here - +function createLongGreeting(name,age){ + return "Hello, my name is "+name+ "and I'm "+age+" years old"; +} const greeting = createLongGreeting("Daniel", 30); console.log(greeting); diff --git a/exercises/L-functions-nested/exercise.js b/exercises/L-functions-nested/exercise.js index a5d377442..399d5c7af 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -3,3 +3,14 @@ var mentor2 = "Irina"; var mentor3 = "Mimi"; var mentor4 = "Rob"; var mentor5 = "Yohannes"; + +function shoutyGreeting(mentorName) { + return "hello " + mentorName.toUpperCase(); +} + + +console.log(shoutyGreeting(mentor1)); +console.log(shoutyGreeting(mentor2)); +console.log(shoutyGreeting(mentor3)); +console.log(shoutyGreeting(mentor4)); +console.log(shoutyGreeting(mentor5)); \ No newline at end of file diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index d82e59480..2ebfd1daf 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,22 +5,30 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(priceInPound) { + /*let priceInDollar = priceInPound * 1.4;*/ + return priceInPound * 1.4; +} /* CURRENCY CONVERSION =================== The business is now breaking into the Brazilian market Write a new function for converting to the Brazilian real (exchange rate is 5.7 BRL to £) - They have also decided that they should add a 1% fee to all foreign transactions, which means you only convert 99% of the £ to BRL. + They have also decided that they should add a 1% fee to all foreign transactions, + which means you only convert 99% of the £ to BRL. */ -function convertToBRL() {} +function convertToBRL(priceInPound) { + let priceInBrazilian = 0.99 * priceInPound * 5.7; + + return Number(priceInBrazilian.toFixed(2)); +} /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. -To run these tests type `npm run extraTo run the tests for just this one file, type `npm run extra-tests -- --testPathPattern 1-syntax-errors` into your terminal +To run these tests type `npm run extraTo run the tests for just this one file, type `npm test -- --testPathPattern 1-currency-conversion` into your terminal (Reminder: You must have run `npm install` one time before this will work!) */ diff --git a/extra/2-piping.js b/extra/2-piping.js index 9c8ebc76a..398cec9a4 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,31 +16,39 @@ the final result to the variable goodCode */ -function add() { +function add(num1,num2) { + return num1+num2; } -function multiply() { - +function multiply(num1,num2) { + return num1*num2; } -function format() { +function format(number) { + return "£" + number; } const startingValue = 2; +function random(startingValue){ + return "£" + (startingValue + 10) * 2; +} + // Why can this code be seen as bad practice? Comment your answer. -let badCode = +let badCode = "£" + (startingValue + 10) * 2; /* BETTER PRACTICE */ +let sum = startingValue + 10; +let total = sum * 2; -let goodCode = +let goodCode = "£" + total; /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. -To run these tests type `npm run extraTo run the tests for just this one file, type `npm run extra-tests -- --testPathPattern 2-piping` into your terminal +To run these tests type `npm run extraTo run the tests for just this one file, type `npm test -- --testPathPattern 2-piping` into your terminal (Reminder: You must have run `npm install` one time before this will work!) */ diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index f3adbefa5..eb2bf655b 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -43,32 +43,13 @@ Very doubtful. */ -// This should log "The ball has shaken!" -// and return the answer. -function shakeBall() { - //Write your code in here -} - -/* - This function should say whether the answer it is given is - - very positive - - positive - - negative - - very negative - - This function should expect to be called with any value which was returned by the shakeBall function. -*/ -function checkAnswer(answer) { - //Write your code in here -} - /* ================================== ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. -To run these tests type `npm run extraTo run the tests for just this one file, type `npm run extra-tests -- --testPathPattern 3-magic-8-ball` into your terminal +To run these tests type `npm run extraTo run the tests for just this one file, type `npm test -- --testPathPattern 3-magic-8-ball` into your terminal (Reminder: You must have run `npm install` one time before this will work!) ================================== */ @@ -101,7 +82,9 @@ test("magic 8 ball returns different values each time", () => { ); } - let seenPositivities = new Set(Array.from(seenAnswers.values()).map(checkAnswer)); + let seenPositivities = new Set( + Array.from(seenAnswers.values()).map(checkAnswer) + ); if (seenPositivities.size < 2) { throw Error( "Expected to random answers with different positivities each time shakeBall was called, but always got the same one" diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index a10cc9ac2..cfd19b968 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,16 +1,18 @@ // There are syntax errors in this code - can you fix it to pass the tests? -function addNumbers(a b c) { +function addNumbers(a,b,c) { return a + b + c; } -function introduceMe(name, age) - return "Hello, my name is " + name "and I am " age + "years old"; +function introduceMe(name, age){ + return "Hello, my name is " + name +" and I am "+ age + " years old"; +} + function getTotal(a, b) { - total = a ++ b; + total = a + b; - return "The total is total"; + return "The total is "+ total; } /* diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 9cca7603b..4902e77f2 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -1,16 +1,16 @@ // The syntax for this function is valid but it has an error, find it and fix it. function trimWord(word) { - return wordtrim(); + return word.trim(); } function getStringLength(word) { - return "word".length(); + return word.length; } function multiply(a, b, c) { - a * b * c; - return; + return a * b * c; + } /* diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 5a953ba60..dc0265de1 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -2,15 +2,22 @@ function getRandomNumber() { return Math.random() * 10; } +/********************************************************************************** */ +/*Math.random() returns a random number between 0 (inclusive), and 1 (exclusive) +/********************************************************************************** */ // Add comments to explain what this function does. You're meant to use Google! function combine2Words(word1, word2) { return word1.concat(word2); } +/********************************************************************************** */ +/*The concat() method joins two or more strings +/********************************************************************************** */ function concatenate(firstWord, secondWord, thirdWord) { // Write the body of this function to concatenate three words together. // Look at the test case below to understand what this function is expected to return. + return firstWord+" ".concat(secondWord)+" ".concat(thirdWord); } /* diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index ba77c7ae2..e8b91c384 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,7 +5,11 @@ Sales tax is 20% of the price of the product. */ -function calculateSalesTax() {} +function calculateSalesTax(itemPrice) { + let tax = itemPrice * 0.2; + let total=tax+itemPrice; + return total; +} /* CURRENCY FORMATTING @@ -17,7 +21,11 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(itemPrice) { + let totalPrice = calculateSalesTax(itemPrice); + let formatPrice = "£" + totalPrice.toFixed(2); + return formatPrice; +} /* =================================================== diff --git a/package.json b/package.json index 93e0861e3..ff48de45a 100644 --- a/package.json +++ b/package.json @@ -14,21 +14,27 @@ "url": "https://github.com/CodeYourFuture/JavaScript-Core-1-Coursework-Week1/issues" }, "jest": { - "setupFilesAfterEnv": ["jest-extended"], + "setupFilesAfterEnv": [ + "jest-extended" + ], "projects": [ { "displayName": "mandatory", - "testMatch": ["/mandatory/*.js"] + "testMatch": [ + "/mandatory/*.js" + ] }, { "displayName": "extra", - "testMatch": ["/extra/*.js"] + "testMatch": [ + "/extra/*.js" + ] } ] }, "homepage": "https://github.com/CodeYourFuture/JavaScript-Core-1-Coursework-Week1#readme", "devDependencies": { "jest": "^26.6.3", - "jest-extended": "^0.11.5" + "jest-extended": "^1.2.0" } }