From 1507caf8a3e6d8325f94bdb5f1a33bb01d15a16a Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Fri, 3 Jan 2020 02:50:55 +0200 Subject: [PATCH] day 2 --- .gitignore | 4 +- images/comparison_operators.png | Bin 0 -> 49972 bytes images/string_indexes.png | Bin 0 -> 29272 bytes readMe.md | 586 +++++++++++++++++++++++++++++++- 4 files changed, 580 insertions(+), 10 deletions(-) create mode 100644 images/comparison_operators.png create mode 100644 images/string_indexes.png diff --git a/.gitignore b/.gitignore index c206125d..e8317f90 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ draft.md playground /playground -.DS_Store \ No newline at end of file +.DS_Store +test.js +day3.md \ No newline at end of file diff --git a/images/comparison_operators.png b/images/comparison_operators.png new file mode 100644 index 0000000000000000000000000000000000000000..26ccb913089e0d45d6923069fedb60137b8b7240 GIT binary patch literal 49972 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 literal 0 HcmV?d00001 diff --git a/images/string_indexes.png b/images/string_indexes.png new file mode 100644 index 0000000000000000000000000000000000000000..cc2f6389c6ad5be28ae81e42375852d721c61fc9 GIT binary patch literal 29272 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 Nb^X@0k}Ec0{||@BGkgF5 literal 0 HcmV?d00001 diff --git a/readMe.md b/readMe.md index 26fb5dc1..30f4d14d 100644 --- a/readMe.md +++ b/readMe.md @@ -32,7 +32,18 @@ - [Checking Data types](#checking-data-types) - [Comments](#comments) - [Variables](#variables) -- [💻 Day 1: Exercises](#-day-1-exercises) +- [💻 Day 1: Exercises](#%f0%9f%92%bb-day-1-exercises) +- [📔 Day 2](#%f0%9f%93%94-day-2) +- [Data types](#data-types) +- [Numbers](#numbers) + - [Declaring number data types](#declaring-number-data-types) + - [Math Object](#math-object) +- [Strings](#strings) + - [String Concatenation](#string-concatenation) + - [Concatenating using addition operator](#concatenating-using-addition-operator) + - [Template Literals(Template Strings)](#template-literalstemplate-strings) + - [String Methods](#string-methods) +- [💻 Day 2: Exercises](#%f0%9f%92%bb-day-2-exercises) @@ -312,8 +323,8 @@ console.log('Hello, World!') - + b}`) +``` +```sh +2 is greater than 3: false +``` +## String Methods +Everything in JavaScript is an object. String is a primitive data type that means we can not modify once it is created. String object has many string methods. There many string methods which can help us to work with strings. + +1. *length*: The string *length* method returns the number of characters in a string included empty space. + **Example:** + ```js + let js = 'JavaScript' + console.log(js.length) // 10 + let firstName = 'Asabeneh' + console.log(firstName.length) // 8 + ``` +2. *Accessing characters in a string*: We can access each characters in a string using its index. In programming counting starts from 0. The first index of the string is zero and the last index is one minus the length of the string + + ![Accessing sting by index](./images/string_indexes.png) +Let us access the first character in 'JavaScript' string. +```js +let string = 'JavaScript' +let firstLetter = string[0] +console.log(firstLetter) // J +let secondLetter = string[1] // a +let thirdLetter = string[2] +let lastLetter = string[9] +console.log(lastLetter) // t +let lastIndex = string.length - 1 +console.log(lastIndex) // 9 +console.log(string[lastIndex]) // t + +``` +3. *toUpperCase()*: this method changes the string to uppercase letters. +```js +let string = 'JavaScript' +console.log(string.toUpperCase()) // JAVASCRIPT +let firstName = 'Asabeneh' +console.log(firstName.toUpperCase()) // ASABENEH +let country = 'Finland' +console.log(country.toUpperCase()) // FINLAND + +``` + +4. *toLowerCase()*: this method changes the string to lowercase letters. +```js +let string = 'JavasCript' +console.log(string.toLowerCase()) // javascript +let firstName = 'Asabeneh' +console.log(firstName.toLowerCase()) // asabeneh +let country = 'Finland' +console.log(country.toLowerCase()) // finland + +``` +5. *substr()*: It takes two arguments,the starting index and number of characters to slice. +```js +let string = 'JavaScript' +console.log(string.substr(4,6) // Script +let country = 'Finland' +console.log(country.substr(3, 4)) // land + +``` +6. *substring()*: It takes two arguments,the starting index and the stopping index but it doesn't include the stopping index. + +```js +let string = 'JavaScript' +console.log(string.substring(0,4) // Java +console.log(string.substring(4,10) // Script +console.log(string.substring(4) // Script +let country = 'Finland' +console.log(country.substring(0, 3)) // Fin +console.log(country.substring(3, 7)) // land +console.log(country.substring(3)) // land + +``` +7. *split(): The split method splits a string at a specified place. + +```js +let string = '30 Days Of JavaScipt' +console.log(string.split()) // ["30 Days Of JavaScript"] +console.log(string.split(' ')) // ["30", "Days", "Of", "JavaScript"] +let firstName = 'Asabeneh' +console.log(firstName.split()) // ["Asabeneh"] +console.log(firstName.split('')) // ["A", "s", "a", "b", "e", "n", "e", "h"] +let countries = 'Finland, Sweden, Norway, Denmark, and Iceland' +console.log(countries.split(',')) // ["Finland", " Sweden", " Norway", " Denmark", " and Iceland"] +console.log(countries.split(', ')) //  ["Finland", "Sweden", "Norway", "Denmark", "and Iceland"] + +``` +8. *trim()*: Removes trailing space in the beginning or the end of a string. + +```js +let string = ' 30 Days Of JavaScript ' +console.log(string) // +console.log(string.trim(' ')) // +let firstName = ' Asabeneh ' +console.log(firstName) +console.log(firstName.trim()) // +``` +```sh + 30 Days Of JavasCript +30 Days Of JavasCript + Asabeneh +Asabeneh +``` +9. *includes()*: It takes a substring argument and it check if substring argument exists in the string. *includes()* returns a boolean. It checks if a substring exist in a string and it returns true if it exists and false if it doesn't exist. + +```js +let string = '30 Days Of JavaScript' +console.log(string.includes('Days')) // true +console.log(string.includes('days')) // false +console.log(string.includes('Script')) // true +console.log(string.includes('script')) // false +console.log(string.includes('java')) // false +console.log(string.includes('Java')) // true + +let country = 'Finland' +console.log(country.includes('fin')) // false +console.log(country.includes('Fin')) // true +console.log(country.includes('land')) // true +console.log(country.includes('Land')) // false + +``` +10. *replace()*: takes to parameter the old substring and new substring. + +```js +string.replace(oldsubstring, newsubstring) +``` +```js +let string = '30 Days Of JavaScript' +console.log(string.replace('JavaScript', 'Python')) // 30 Days Of Python +let country = 'Finland' +console.log(country.replace('Fin', 'Noman')) Nomanland +``` +11. *charAt()*: Takes index and it returns the value at that index +```js +string.charAt(index) +``` +```js +let string = '30 Days Of JavaScript' +console.log(string.charAt(0)) // 3 +let lastIndex = string.length - 1 +console.log(string.charAt(lastIndex)) // t + +``` +12. *charCodeAt()*: Takes index and it returns char code(ASCII number) of the value at that index +```js +string.charCodeAt(index) +``` +```js +let string = '30 Days Of JavaScript' +console.log(string.charCodeAt(3)) // D ASCII number is 51 +let lastIndex = string.length - 1 +console.log(string.charCodeAt(lastIndex)) // t ASCII is 116 + +``` +13. *indexOf()*: Takes takes a substring and if the substring exists in a string it returns the first position of the substring if does not exist it returns -1 +```js +string.indexOf(substring) +``` +```js +let string = '30 Days Of JavaScript' +console.log(string.indexOf('D')) // 3 +console.log(string.indexOf('Days')) // 3 +console.log(string.indexOf('days')) // -1 +console.log(string.indexOf('a')) // 4 +console.log(string.indexOf('JavaScript')) // 11 +console.log(string.indexOf('Script')) //15 +console.log(string.indexOf('script')) // -1 + +``` +14. *lastIndexOf()*: Takes takes a substring and if the substring exists in a string it returns the last position of the substring if it does not exist it returns -1 +```js +string.charCodeAt(index) +``` +```js +let string = 'I love JavaScript. If you do not love JavaScript what else can you love.' +console.log(string.lastIndexOf('love')) // 67 +console.log(string.lastIndexOf('you')) // 63 +console.log(string.lastIndexOf('JavaScript')) // 38 + +``` + +15. *concat()*: it takes many substrings and creates concatenation. +```js +string.concate(substring, substring, substring) +``` +```js +let string = '30' +console.log(string.concat("Days", "Of", "JavaScript")) // 30DaysOfJavaScript +let country = 'Fin' +console.log(country.concat("land")) // Finland + +``` + +16. *startsWith*: it takes a substring as an argument and it checks if the string starts with that specified substring. It returns a boolean(true or false). +```js +string.startsWith(substring) +``` +```js +let string = 'Love is the best to in this world' +console.log(string.startsWith('Love')) // true +console.log(string.startsWith('love')) // false +console.log(string.startsWith('world')) // false + +let country = 'Finland' +console.log(country.startsWith('Fin')) // true +console.log(country.startsWith('fin')) // false +console.log(country.startsWith('land')) // false + +``` +17. *endsWith*: it takes a substring as an argument and it checks if the string starts with that specified substring. It returns a boolean(true or false). +```js +string.endsWith(substring) +``` +```js +let string = 'Love is the best to in this world' +console.log(string.endsWith('world')) // true +console.log(string.endsWith('love')) // false +console.log(string.endsWith('in this world')) // true + +let country = 'Finland' +console.log(country.endsWith('land')) // true +console.log(country.endsWith('fin')) // false +console.log(country.endsWith('Fin')) // false + +``` +18. *search*: it takes a substring as an argument and it returns the index of the first match. +```js +string.serch(substring) +``` +```js +let string = 'I love JavaScript. If you do not love JavaScript what else can you love.' +console.log(string.search('love')) // 2 + +``` +1. *match*: it takes a substring or regular expression pattern as an argument and it returns an array if there is match if not it returns null. Let us see how a regular expresson pattern looks like. It starts with / sign and ends with / sign. + ```js + let string = 'love' + let patternOne = /love/ // with out any flag + let patternTwo = /love/gi // g-means to search in the whole text, i - case insensitive + + ``` +```js +string.match(substring) +``` +```js +let string = 'I love JavaScript. If you do not love JavaScript what else can you love.' +console.log(string.match('love')) // +/* +output + +["love", index: 2, input: "I love JavaScript. If you do not love JavaScript what else can you love.", groups: undefined] +*/ +let pattern = /love/gi +console.log(string.match(pattern)) // ["love", "love", "love"] + +``` +Let us extract numbers from text using regular expression. This is not regular expression section, no panic. +```js + +let txt = 'In 2019, I run 30 Days of Pyhton. Now, in 2020 I super exited to start this challenge' +let regEx = /\d+/ // d with escape character means d not a normal d instead acts a digit +// + means one or more digit numbers, +// if there is g after that it means global, search everywhere. +console.log(text.match(regEx)) // ["2", "0", "1", "9", "3", "0", "2", "0", "2", "0"] +console.log(text.match(/\d+/g)) // ["2019", "30", "2020"] +``` + + +# 💻 Day 2: Exercises + +1. Declare a variable name challenge and assign it to an initial value **'30 Days Of JavaScript'**. +2. Print the string on the browser console using __console.log()__ +3. Print the __length__ of the string on the browser console using _console.log()_ +4. Change all the string to capital letters using __toUpperCase()__ method +5. Change all the string to lowercase letters using __toLowerCase()__ method +6. Cut(slice) out the first word of the string using __substr()__ or __substring()__ method +7. Slice out the phrase *Days Of JavaScript* from *30 Days Of JavaScript*. +8. Use __substr__ to slice out the phase __because because because__ in the following sentence:__'You cannot end a sentence with because because because is a conjunction'__ +9. Check if the string contains a word __Script__ using __includes()__ method +10. Split the __string__ into __array__ using __split()__ method +11. Split the string 30 Days Of JavaScript at the space using __split()__ method +12. 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon' __split__ the string at the comma and change it to an array. +13. Change 30 Days Of JavaScript to Microsoft Academy using __replace()__ method. +14. What is character at index 15 in '30 Days Of JavaScript' string use __charAt()__ method. +15. What is the character code of J in '30 Days Of JavaScript' string using __charCodeAt()__ +16. Use __indexOf__ to determine the position of the first occurrence of a in 30 Days Of JavaScript +17. Use __lastIndexOf__ to determine the position of the last occurrence of a in 30 Days Of JavaScript. +18. Use __indexOf__ to find the position of the first occurrence of the word __because__ in the following sentence:__'You cannot end a sentence with because because because is a conjunction'__ +19. Use __lastIndexOf__ to find the position of the first occurrence of the word __because__ in the following sentence:__'You cannot end a sentence with because because because is a conjunction'__ +20. Use __search__ to find the position of the first occurrence of the word __because__ in the following sentence:__'You cannot end a sentence with because because because is a conjunction'__ +21. Use __trim()__ to remove if there is trailing whitespace at the beginning and the end of a string.E.g ' 30 Days Of JavaScript '. +22. Use __startsWith()__ method with the string *30 Days Of JavaScript* make the result true +23. Use __endsWith()__ method with the string *30 Days Of JavaScript* make the result true +24. Use __match()__ method to find all the a’s in 30 Days Of JavaScript +25. Use __match()__ to count the number all because's in the following sentence:__'You cannot end a sentence with because because because is a conjunction'__ +26. Use __concat()__ and merge '30 Days of' and 'JavaScript' to a single string, '30 Days Of JavaScript' +27. Use __repeat()__ method to print 30 Days Of JavaScript 2 times +28. Love is the best thing in this world. Some found their love and some are still looking for their love. Count the number of word love in this sentence. +29. Calculate the total annual income of the person by extract the numbers from the following text. 'He earns 5000 euro from salary per month, 10000 euro annual bonus, 15000 euro online courses per month.' +30. Clean the following text(hint, use replace and regular express) +```js + sentence = '%I $am@% a %tea@cher%, &and& I lo%#ve %tea@ching%;. There $is nothing; &as& mo@re rewarding as educa@ting &and& @emp%o@wering peo@ple. ;I found tea@ching m%o@re interesting tha@n any other %jo@bs. %Do@es thi%s mo@tivate yo@u to be a tea@cher!?' +``` + + + + +