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
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
```js
string.charCodeAt(index)
string.lastIndexOf(index)
```
```
```js
```js
let string = 'I love JavaScript. If you do not love JavaScript what else can you love.'
let string = 'I love JavaScript. If you do not love JavaScript what else can you love.'
15. *concat()*: it takes many substrings and creates concatenation.
15. *concat()*: it takes many substrings and creates concatenation.
```js
```js
string.concate(substring, substring, substring)
string.concat(substring, substring, substring)
```
```
```js
```js
let string = '30'
let string = '30'
@ -948,7 +936,7 @@ 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).
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).
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).
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).
18. *search*: it takes a substring as an argument and it returns the index of the first match.
18. *search*: it takes a substring as an argument and it returns the index of the first match.
```js
```js
string.serch(substring)
string.search(substring)
```
```
```js
```js
let string = 'I love JavaScript. If you do not love JavaScript what else can you love.'
let string = 'I love JavaScript. If you do not love JavaScript what else can you love.'
console.log(string.search('love')) // 2
console.log(string.search('love')) // 2
```
```
19. *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 expression pattern looks like. It starts with / sign and ends with / sign.
19. *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 expression pattern looks like. It starts with / sign and ends with / sign.
```js
```js
let string = 'love'
let string = 'love'
let patternOne = /love/ // with out any flag
let patternOne = /love/ // with out any flag
@ -1021,6 +1009,13 @@ let regEx = /\d+/ // d with escape character means d not a normal d instead acts
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.'
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 and find the most frequent word(hint, use replace and regular express).
30. Clean the following text and find the most frequent word(hint, use replace and regular express).
```js
```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!? %Th#is 30#Days&OfJavaScript &is also $the $result of &love& of tea&ching'
const 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!? %Th#is 30#Days&OfJavaScript &is also $the $result of &love& of tea&ching'
```
```
## Data types Part
## Exercises: Data types Part
1. Declare firstName, lastName, country, city, age, isMarried, year variable and assign value to it
String, number, boolean, null, undefined and symbol(ES6) are JavaScript primitive data types.
1. The JavaScript typeof operator uses to check different data types. Check the data type of each variables from question number 1.
1. The JavaScript typeof operator uses to check different data types. Check the data type of each variables from question number 1.
2.
## Arithmetic Operators Part
## Arithmetic Operators Part
JavaScript arithmetic operators are addition(+), subtraction(-), multiplication(\*), division(/), modulus(%), increment(++) and decrement(--).
JavaScript arithmetic operators are addition(+), subtraction(-), multiplication(\*), division(/), modulus(%), increment(++) and decrement(--).
@ -1210,7 +1206,7 @@ let operandTwo = 3;
```
```
Using the above operands apply different JavaScript arithmetic operations.
Using the above operands apply different JavaScript arithmetic operations.
## Booleans Part
## Exercises: Booleans Part
Boolean value is either true or false.
Boolean value is either true or false.
@ -1230,7 +1226,7 @@ Boolean value is either true or false.
1. 4 == '4'
1. 4 == '4'
1. 4 === '4'
1. 4 === '4'
## Comparison Operators
## Exercises: Comparison Operators
Boolean value is either true or false. Any comparison return a boolean either true or false.
Boolean value is either true or false. Any comparison return a boolean either true or false.
Use all the following comparison operators to compare the following values: >, < >=, <=, !=, !==,===.
Use all the following comparison operators to compare the following values: >, < >=, <=, !=, !==,===.
@ -1248,7 +1244,7 @@ Which are true or which are false ?