pull/717/merge
Anurag Nishad 1 month ago committed by GitHub
commit e649b7e86a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,990 @@
<div align="center">
<h1> जावास्क्रिप्ट के 30 दिन: डेटा प्रकार</h1>
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
</a>
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
</a>
<sub>Author:
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
<small> January, 2020</small>
</sub>
</div>
</div>
[<< पहला दिन](../readMe.md) | [तीसरा दिन >>](../03_Day_Booleans_operators_date/03_booleans_operators_date.md)
![जावास्क्रिप्ट के तीस दिन](../images/banners/day_1_2.png)
- [📔 दूसरा दिन](#-दिन-2)
- [डेटा प्रकार] (# डेटा-प्रकार)
- [आदिम डेटा प्रकार](#आदिम-डेटा-प्रकार)
- [गैर-आदिम डेटा प्रकार](#गैर-आदिम-डेटा-प्रकार)
- [नंबर](#नंबर)
- [संख्या डेटा प्रकार घोषित करना](#घोषणा-संख्या-डेटा-प्रकार)
- [गणित वस्तु] (# गणित-वस्तु)
- [रैंडम नंबर जेनरेटर](#रैंडम-नंबर-जनरेटर)
- [स्ट्रिंग्स] (# स्ट्रिंग्स)
- [स्ट्रिंग संयोजन](#स्ट्रिंग संयोजन)
- [अतिरिक्त ऑपरेटर का उपयोग करके जोड़ना](#श्रृंखला-उपयोग-अतिरिक्त-ऑपरेटर)
- [लॉन्ग लिटरल स्ट्रिंग्स](#लॉन्ग-लिटरल-स्ट्रिंग्स)
- [एस्केप सीक्वेंस इन स्ट्रिंग्स](#एस्केप-सीक्वेंस-इन-स्ट्रिंग्स)
- [टेम्पलेट लिटरल (टेम्पलेट स्ट्रिंग्स)](#टेम्पलेट-लिटरल-टेम्प्लेट-स्ट्रिंग्स)
- [स्ट्रिंग मेथड्स] (# स्ट्रिंग-मेथड्स)
- [डेटा प्रकार और कास्टिंग की जाँच] (# जाँच-डेटा-प्रकार-और-कास्टिंग)
- [डेटा प्रकार की जाँच] (# जाँच-डेटा-प्रकार)
- [डेटा प्रकार बदलना (कास्टिंग)](#बदलते-डेटा-प्रकार-कास्टिंग)
- [स्ट्रिंग टू इंट] (# स्ट्रिंग-टू-इंट)
- [स्ट्रिंग टू फ्लोट](#स्ट्रिंग-टू-फ्लोट)
- [फ्लोट टू इंट](#फ्लोट-टू-इंट)
- [💻 दूसरा दिन: व्यायाम](#-दिन-2-व्यायाम)
- [व्यायाम: स्तर 1](#व्यायाम-स्तर -1)
- [व्यायाम: स्तर 2](#व्यायाम-स्तर-2)
- [व्यायाम: स्तर 3](#व्यायाम-स्तर-3)
#📔दिन 2
## डेटा के प्रकार
पिछले अनुभाग में, हमने डेटा प्रकारों के बारे में कुछ बताया। डेटा या मानों में डेटा प्रकार होते हैं। डेटा प्रकार डेटा की विशेषताओं का वर्णन करते हैं। डेटा प्रकारों को दो में विभाजित किया जा सकता है:
1. आदिम डेटा प्रकार
2. गैर-आदिम डेटा प्रकार (वस्तु संदर्भ)
### आदिम डेटा प्रकार
जावास्क्रिप्ट में आदिम डेटा प्रकारों में शामिल हैं:
1. संख्याएँ - पूर्णांक, तैरती हैं
2. स्ट्रिंग्स - सिंगल कोट, डबल कोट या बैकटिक कोट के अंतर्गत कोई भी डेटा
3. बूलियंस - सही या गलत मान
4. शून्य - खाली मान या कोई मान नहीं
5. अपरिभाषित - एक मूल्य के बिना घोषित चर
6. सिंबल - एक अद्वितीय मान जो सिंबल कंस्ट्रक्टर द्वारा उत्पन्न किया जा सकता है
जावास्क्रिप्ट में गैर-आदिम डेटा प्रकारों में शामिल हैं:
1. वस्तुएँ
2. सारणियाँ
अब, देखते हैं कि आदिम और गैर-आदिम डेटा प्रकारों का वास्तव में क्या मतलब है।
*आदिम* डेटा प्रकार अपरिवर्तनीय (गैर-परिवर्तनीय) डेटा प्रकार हैं। एक बार आदिम डेटा प्रकार बन जाने के बाद हम इसे संशोधित नहीं कर सकते हैं।
**उदाहरण:**
```js
let word = 'JavaScript'
```
यदि हम वेरिएबल *वर्ड* में संग्रहीत स्ट्रिंग को संशोधित करने का प्रयास करते हैं, तो जावास्क्रिप्ट को एक त्रुटि उत्पन्न करनी चाहिए। एकल उद्धरण, दोहरे उद्धरण या बैकटिक उद्धरण के अंतर्गत कोई भी डेटा प्रकार एक स्ट्रिंग डेटा प्रकार है।
```js
word[0] = 'Y'
```
यह अभिव्यक्ति चर *शब्द* में संग्रहीत स्ट्रिंग को नहीं बदलती है। तो, हम कह सकते हैं कि तार परिवर्तनीय नहीं हैं या दूसरे शब्दों में अपरिवर्तनीय हैं।
आदिम डेटा प्रकारों की तुलना इसके मूल्यों से की जाती है। आइए हम विभिन्न डेटा मानों की तुलना करें। नीचे दिया गया उदाहरण देखें:
```js
let numOne = 3
let numTwo = 3
console.log(numOne == numTwo) // true
let js = 'JavaScript'
let py = 'Python'
console.log(js == py) //false
let lightOn = true
let lightOff = false
console.log(lightOn == lightOff) // false
```
### गैर-आदिम डेटा प्रकार
*गैर-आदिम* डेटा प्रकार परिवर्तनीय या परिवर्तनशील होते हैं। गैर-आदिम डेटा प्रकारों के बनने के बाद हम उनके मान को संशोधित कर सकते हैं।
आइए एक ऐरे बनाकर देखें। एक सरणी एक वर्ग कोष्ठक में डेटा मानों की एक सूची है। Arrays में समान या भिन्न डेटा प्रकार हो सकते हैं। सरणी मानों को उनके अनुक्रमणिका द्वारा संदर्भित किया जाता है। जावास्क्रिप्ट सरणी में सूचकांक शून्य से शुरू होता है। यानी, किसी सरणी का पहला तत्व इंडेक्स शून्य पर, दूसरा तत्व इंडेक्स एक पर और तीसरा तत्व इंडेक्स दो पर पाया जाता है, आदि।
```js
let nums = [1, 2, 3]
nums[0] = 10
console.log(nums) // [10, 2, 3]
```
जैसा कि आप देख सकते हैं, एक सरणी, जो एक गैर-आदिम डेटा प्रकार है, उत्परिवर्तनीय है। गैर-आदिम डेटा प्रकारों की तुलना मूल्य से नहीं की जा सकती। भले ही दो गैर-आदिम डेटा प्रकारों में समान गुण और मान हों, वे सख्ती से समान नहीं हैं।
```js
let nums = [1, 2, 3]
let numbers = [1, 2, 3]
console.log(nums == numbers) // false
let userOne = {
name:'Asabeneh',
role:'teaching',
country:'Finland'
}
let userTwo = {
name:'Asabeneh',
role:'teaching',
country:'Finland'
}
console.log(userOne == userTwo) // false
```
सामान्य नियम, हम गैर-आदिम डेटा प्रकारों की तुलना नहीं करते हैं। सरणियों, कार्यों या वस्तुओं की तुलना न करें।
गैर-आदिम मूल्यों को संदर्भ प्रकार के रूप में संदर्भित किया जाता है, क्योंकि उनकी तुलना मूल्य के बजाय संदर्भ द्वारा की जा रही है। यदि वे एक ही अंतर्निहित वस्तु को संदर्भित करते हैं तो दो वस्तुएं केवल सख्ती से बराबर होती हैं।
```js
let nums = [1, 2, 3]
let numbers = nums
console.log(nums == numbers) // true
let userOne = {
name:'Asabeneh',
role:'teaching',
country:'Finland'
}
let userTwo = userOne
console.log(userOne == userTwo) // true
```
यदि आपको आदिम डेटा प्रकारों और गैर-आदिम डेटा प्रकारों के बीच के अंतर को समझने में कठिनाई होती है, तो आप अकेले नहीं हैं। शांत हो जाएं और बस अगले भाग पर जाएं और कुछ समय बाद वापस आने का प्रयास करें। अब हम संख्या प्रकार से डेटा प्रकार शुरू करते हैं।
## नंबर
संख्याएँ पूर्णांक और दशमलव मान हैं जो सभी अंकगणितीय संक्रियाएँ कर सकते हैं।
आइए संख्याओं के कुछ उदाहरण देखें।
### संख्या डेटा प्रकार घोषित करना
```js
let age = 35
const gravity = 9.81 // we use const for non-changing values, gravitational constant in m/s2
let mass = 72 // mass in Kilogram
const PI = 3.14 // pi a geometrical constant
// More Examples
const boilingPoint = 100 // temperature in oC, boiling point of water which is a constant
const bodyTemp = 37 // oC average human body temperature, which is a constant
console.log(age, gravity, mass, PI, boilingPoint, bodyTemp)
```
### गणित वस्तु
जावास्क्रिप्ट में मैथ ऑब्जेक्ट संख्याओं के साथ काम करने के लिए बहुत सारे तरीके प्रदान करता है।
```js
const PI = Math.PI
console.log(PI) // 3.141592653589793
// Rounding to the closest number
// if above .5 up if less 0.5 down rounding
console.log(Math.round(PI)) // 3 to round values to the nearest number
console.log(Math.round(9.81)) // 10
console.log(Math.floor(PI)) // 3 rounding down
console.log(Math.ceil(PI)) // 4 rounding up
console.log(Math.min(-5, 3, 20, 4, 5, 10)) // -5, returns the minimum value
console.log(Math.max(-5, 3, 20, 4, 5, 10)) // 20, returns the maximum value
const randNum = Math.random() // creates random number between 0 to 0.999999
console.log(randNum)
// Let us create random number between 0 to 10
const num = Math.floor(Math.random () * 11) // creates random number between 0 and 10
console.log(num)
//Absolute value
console.log(Math.abs(-10)) // 10
//Square root
console.log(Math.sqrt(100)) // 10
console.log(Math.sqrt(2)) // 1.4142135623730951
// Power
console.log(Math.pow(3, 2)) // 9
console.log(Math.E) // 2.718
// Logarithm
// Returns the natural logarithm with base E of x, Math.log(x)
console.log(Math.log(2)) // 0.6931471805599453
console.log(Math.log(10)) // 2.302585092994046
// Returns the natural logarithm of 2 and 10 respectively
console.log(Math.LN2) // 0.6931471805599453
console.log(Math.LN10) // 2.302585092994046
// Trigonometry
Math.sin(0)
Math.sin(60)
Math.cos(0)
Math.cos(60)
```
#### रैंडम संख्या जनरेटर
जावास्क्रिप्ट मैथ ऑब्जेक्ट में एक यादृच्छिक () विधि संख्या जनरेटर है जो 0 से 0.999999999 तक संख्या उत्पन्न करता है ...
```js
let randomNum = Math.random() // generates 0 to 0.999...
```
अब, देखते हैं कि हम 0 और 10 के बीच यादृच्छिक संख्या उत्पन्न करने के लिए यादृच्छिक () विधि का उपयोग कैसे कर सकते हैं:
```js
let randomNum = Math.random() // generates 0 to 0.999
let numBtnZeroAndTen = randomNum * 11
console.log(numBtnZeroAndTen) // this gives: min 0 and max 10.99
let randomNumRoundToFloor = Math.floor(numBtnZeroAndTen)
console.log(randomNumRoundToFloor) // this gives between 0 and 10
```
## स्ट्रिंग्स
स्ट्रिंग टेक्स्ट होते हैं, जो **_सिंगल_** , **_डबल_**, **_बैक-टिक_** कोट के अंतर्गत होते हैं। एक स्ट्रिंग घोषित करने के लिए, हमें एक चर नाम, असाइनमेंट ऑपरेटर, एक एकल उद्धरण के तहत एक मान, दोहरे उद्धरण या बैकटिक उद्धरण की आवश्यकता होती है।
आइए स्ट्रिंग्स के कुछ उदाहरण देखें:
```js
let space = ' ' // an empty space string
let firstName = 'Asabeneh'
let lastName = 'Yetayeh'
let country = 'Finland'
let city = 'Helsinki'
let language = 'JavaScript'
let job = 'teacher'
let quote = "The saying,'Seeing is Believing' is not correct in 2020."
let quotWithBackTick = `The saying,'Seeing is Believing' is not correct in 2020.`
```
### स्ट्रिंग संयोजन
दो या दो से अधिक धागों को आपस में जोड़ने को संयोजन कहते हैं।
पिछले स्ट्रिंग सेक्शन में घोषित स्ट्रिंग्स का उपयोग करना:
```js
let fullName = firstName + space + lastName; // concatenation, merging two string together.
console.log(fullName);
```
```sh
Asabeneh Yetayeh
```
हम स्ट्रिंग्स को अलग-अलग तरीकों से जोड़ सकते हैं।
#### एडिशन ऑपरेटर का उपयोग करके जोड़ना
अतिरिक्त ऑपरेटर का उपयोग करना एक पुराना तरीका है। जोड़ने का यह तरीका थकाऊ और त्रुटि-प्रवण है। यह जानना अच्छा है कि इस तरह से कैसे जोड़ना है, लेकिन मैं दृढ़ता से ES6 टेम्पलेट स्ट्रिंग्स (बाद में समझाया गया) का उपयोग करने का सुझाव देता हूं।
```js
// Declaring different variables of different data types
let space = ' '
let firstName = 'Asabeneh'
let lastName = 'Yetayeh'
let country = 'Finland'
let city = 'Helsinki'
let language = 'JavaScript'
let job = 'teacher'
let age = 250
let fullName =firstName + space + lastName
let personInfoOne = fullName + '. I am ' + age + '. I live in ' + country; // ES5 string addition
console.log(personInfoOne)
```
```sh
Asabeneh Yetayeh. I am 250. I live in Finland
```
#### लंबे शाब्दिक तार
एक स्ट्रिंग एक वर्ण या अनुच्छेद या एक पृष्ठ हो सकता है। यदि स्ट्रिंग की लंबाई बहुत बड़ी है तो यह एक पंक्ति में फिट नहीं होती है। हम प्रत्येक पंक्ति के अंत में बैकस्लैश वर्ण (\\) का उपयोग यह इंगित करने के लिए कर सकते हैं कि स्ट्रिंग अगली पंक्ति पर जारी रहेगी।
**उदाहरण:**
```js
const paragraph = "My name is Asabeneh Yetayeh. I live in Finland, Helsinki.\
I am a teacher and I love teaching. I teach HTML, CSS, JavaScript, React, Redux, \
Node.js, Python, Data Analysis and D3.js for anyone who is interested to learn. \
In the end of 2019, I was thinking to expand my teaching and to reach \
to global audience and I started a Python challenge from November 20 - December 19.\
It was one of the most rewarding and inspiring experience.\
Now, we are in 2020. I am enjoying preparing the 30DaysOfJavaScript challenge and \
I hope you are enjoying too."
console.log(paragraph)
```
#### स्ट्रिंग्स में एस्केप सीक्वेंस
जावास्क्रिप्ट और अन्य प्रोग्रामिंग भाषाओं में \ के बाद कुछ वर्ण एक एस्केप सीक्वेंस है। आइए सबसे आम एस्केप कैरेक्टर देखें:
- \n: new line
- \t: Tab, means 8 spaces
- \\\\: Back slash
- \\': Single quote (')
- \\": Double quote (")
```js
console.log('I hope everyone is enjoying the 30 Days Of JavaScript challenge.\nDo you ?') // line break
console.log('Days\tTopics\tExercises')
console.log('Day 1\t3\t5')
console.log('Day 2\t3\t5')
console.log('Day 3\t3\t5')
console.log('Day 4\t3\t5')
console.log('This is a backslash symbol (\\)') // To write a backslash
console.log('In every programming language it starts with \"Hello, World!\"')
console.log("In every programming language it starts with \'Hello, World!\'")
console.log('The saying \'Seeing is Believing\' isn\'t correct in 2020')
```
कंसोल में आउटपुट:
```sh
I hope everyone is enjoying the 30 Days Of JavaScript challenge.
Do you ?
Days Topics Exercises
Day 1 3 5
Day 2 3 5
Day 3 3 5
Day 4 3 5
This is a backslash symbol (\)
In every programming language it starts with "Hello, World!"
In every programming language it starts with 'Hello, World!'
The saying 'Seeing is Believing' isn't correct in 2020
```
#### टेम्प्लेट लिटरल (टेम्पलेट स्ट्रिंग्स)
टेम्प्लेट स्ट्रिंग्स बनाने के लिए, हम दो बैक-टिक का उपयोग करते हैं। हम डेटा को टेम्प्लेट स्ट्रिंग के अंदर एक्सप्रेशन के रूप में इंजेक्ट कर सकते हैं। डेटा इंजेक्ट करने के लिए, हम $ चिह्न से पहले एक घुमावदार ब्रैकेट ({}) के साथ अभिव्यक्ति को संलग्न करते हैं। नीचे सिंटैक्स देखें।
```js
//Syntax
`String literal text`
`String literal text ${expression}`
```
**Example: 1**
```js
console.log(`The sum of 2 and 3 is 5`) // statically writing the data
let a = 2
let b = 3
console.log(`The sum of ${a} and ${b} is ${a + b}`) // injecting the data dynamically
```
**Example:2**
```js
let firstName = 'Asabeneh'
let lastName = 'Yetayeh'
let country = 'Finland'
let city = 'Helsinki'
let language = 'JavaScript'
let job = 'teacher'
let age = 250
let fullName = firstName + ' ' + lastName
let personInfoTwo = `I am ${fullName}. I am ${age}. I live in ${country}.` //ES6 - String interpolation method
let personInfoThree = `I am ${fullName}. I live in ${city}, ${country}. I am a ${job}. I teach ${language}.`
console.log(personInfoTwo)
console.log(personInfoThree)
```
```sh
I am Asabeneh Yetayeh. I am 250. I live in Finland.
I am Asabeneh Yetayeh. I live in Helsinki, Finland. I am a teacher. I teach JavaScript.
```
एक स्ट्रिंग टेम्पलेट या स्ट्रिंग इंटरपोलेशन विधि का उपयोग करके, हम भाव जोड़ सकते हैं, जो एक मान या कुछ ऑपरेशन (तुलना, अंकगणितीय संचालन, टर्नरी ऑपरेशन) हो सकते हैं।
```js
let a = 2
let b = 3
console.log(`${a} is greater than ${b}: ${a > b}`)
```
```sh
2 is greater than 3: false
```
### स्ट्रिंग तरीके
जावास्क्रिप्ट में सब कुछ एक वस्तु है। एक स्ट्रिंग एक आदिम डेटा प्रकार है जिसका अर्थ है कि इसे बनाने के बाद हम इसे संशोधित नहीं कर सकते हैं। स्ट्रिंग ऑब्जेक्ट में कई स्ट्रिंग विधियाँ हैं। विभिन्न स्ट्रिंग विधियाँ हैं जो हमें स्ट्रिंग्स के साथ काम करने में मदद कर सकती हैं।
1. *लंबाई*: स्ट्रिंग *लंबाई* विधि एक स्ट्रिंग में वर्णों की संख्या को खाली स्थान में शामिल करती है।
**Example:**
```js
let js = 'JavaScript'
console.log(js.length) // 10
let firstName = 'Asabeneh'
console.log(firstName.length) // 8
```
2. *एक स्ट्रिंग में वर्णों तक पहुँचना*: हम प्रत्येक वर्ण को उसके सूचकांक का उपयोग करके एक स्ट्रिंग में एक्सेस कर सकते हैं। प्रोग्रामिंग में, गिनती 0 से शुरू होती है। स्ट्रिंग का पहला सूचकांक शून्य है, और अंतिम सूचकांक स्ट्रिंग माइनस वन की लंबाई है।
![Accessing sting by index](../images/string_indexes.png)
आइए हम 'जावास्क्रिप्ट' स्ट्रिंग में विभिन्न वर्णों तक पहुँचें।
```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()*: यह विधि स्ट्रिंग को अपरकेस अक्षरों में बदल देती है।
```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()*: यह विधि स्ट्रिंग को लोअरकेस अक्षरों में बदल देती है।
```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()*: इसमें दो तर्क लगते हैं, आरंभिक अनुक्रमणिका और स्लाइस करने के लिए वर्णों की संख्या।
```js
let string = 'JavaScript'
console.log(string.substr(4,6)) // Script
let country = 'Finland'
console.log(country.substr(3, 4)) // land
```
6. *सबस्ट्रिंग ()*: इसमें दो तर्क होते हैं, शुरुआती इंडेक्स और स्टॉपिंग इंडेक्स लेकिन इसमें स्टॉपिंग इंडेक्स में कैरेक्टर शामिल नहीं होता है।
```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. *विभाजन ()*: विभाजन विधि एक निर्दिष्ट स्थान पर एक स्ट्रिंग को विभाजित करती है।
```js
let string = '30 Days Of JavaScript'
console.log(string.split()) // Changes to an array -> ["30 Days Of JavaScript"]
console.log(string.split(' ')) // Split to an array at space -> ["30", "Days", "Of", "JavaScript"]
let firstName = 'Asabeneh'
console.log(firstName.split()) // Change to an array - > ["Asabeneh"]
console.log(firstName.split('')) // Split to an array at each letter -> ["A", "s", "a", "b", "e", "n", "e", "h"]
let countries = 'Finland, Sweden, Norway, Denmark, and Iceland'
console.log(countries.split(',')) // split to any array at comma -> ["Finland", " Sweden", " Norway", " Denmark", " and Iceland"]
console.log(countries.split(', ')) //  ["Finland", "Sweden", "Norway", "Denmark", "and Iceland"]
```
8. *ट्रिम ()*: किसी स्ट्रिंग के आरंभ या अंत में अनुगामी स्थान को हटाता है।
```js
let string = ' 30 Days Of JavaScript '
console.log(string)
console.log(string.trim(' '))
let firstName = ' Asabeneh '
console.log(firstName)
console.log(firstName.trim()) // still removes spaces at the beginning and the end of the string
```
```sh
30 Days Of JavasCript
30 Days Of JavasCript
Asabeneh
Asabeneh
```
9. *शामिल है ()*: यह एक सबस्ट्रिंग तर्क लेता है और यह जांचता है कि स्ट्रिंग में सबस्ट्रिंग तर्क मौजूद है या नहीं। *शामिल है()* एक बूलियन देता है। यदि एक स्ट्रिंग में एक सबस्ट्रिंग मौजूद है, तो यह सच हो जाता है, अन्यथा यह गलत हो जाता है।
```js
let string = '30 Days Of JavaScript'
console.log(string.includes('Days')) // true
console.log(string.includes('days')) // false - it is case sensitive!
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()*: एक पैरामीटर के रूप में पुराने सबस्ट्रिंग और एक नए सबस्ट्रिंग को लेता है।
```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()*: इंडेक्स लेता है और यह उस इंडेक्स पर वैल्यू लौटाता है
```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()*: इंडेक्स लेता है और यह उस इंडेक्स पर वैल्यू का चार कोड (ASCII नंबर) लौटाता है
```js
string.charCodeAt(index)
```
```js
let string = '30 Days Of JavaScript'
console.log(string.charCodeAt(3)) // D ASCII number is 68
let lastIndex = string.length - 1
console.log(string.charCodeAt(lastIndex)) // t ASCII is 116
```
13. *indexOf()*: एक सबस्ट्रिंग लेता है और यदि सबस्ट्रिंग एक स्ट्रिंग में मौजूद है तो यह सबस्ट्रिंग की पहली स्थिति देता है यदि मौजूद नहीं है तो यह -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()*: एक सबस्ट्रिंग लेता है और यदि सबस्ट्रिंग एक स्ट्रिंग में मौजूद है तो यह सबस्ट्रिंग की अंतिम स्थिति लौटाता है यदि यह मौजूद नहीं है तो यह -1 देता है
```js
//syntax
string.lastIndexOf(substring)
```
```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()*: यह कई सबस्ट्रिंग्स लेता है और उनसे जुड़ता है।
```js
string.concat(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. *शुरू होता है*: यह एक तर्क के रूप में एक सबस्ट्रिंग लेता है और यह जांचता है कि स्ट्रिंग उस निर्दिष्ट सबस्ट्रिंग से शुरू होती है या नहीं। यह एक बूलियन (सही या गलत) लौटाता है।
```js
//syntax
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*: यह एक तर्क के रूप में एक सबस्ट्रिंग लेता है और यह जांचता है कि स्ट्रिंग उस निर्दिष्ट सबस्ट्रिंग के साथ समाप्त होती है या नहीं। यह एक बूलियन (सही या गलत) लौटाता है।
```js
string.endsWith(substring)
```
```js
let string = 'Love is the most powerful feeling in the world'
console.log(string.endsWith('world')) // true
console.log(string.endsWith('love')) // false
console.log(string.endsWith('in the world')) // true
let country = 'Finland'
console.log(country.endsWith('land')) // true
console.log(country.endsWith('fin')) // false
console.log(country.endsWith('Fin')) // false
```
18. *खोज*: यह एक तर्क के रूप में एक सबस्ट्रिंग लेता है और यह पहले मैच की अनुक्रमणिका देता है। खोज मान एक स्ट्रिंग या रेगुलर एक्सप्रेशन पैटर्न हो सकता है।
```js
string.search(substring)
```
```js
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(/javascript/gi)) // 7
```
19. *मैच*: यह एक सबस्ट्रिंग या रेगुलर एक्सप्रेशन पैटर्न को एक तर्क के रूप में लेता है और अगर मैच है तो यह एक सरणी देता है यदि यह शून्य नहीं होता है। आइए देखें कि रेगुलर एक्सप्रेशन पैटर्न कैसा दिखता है। यह / साइन से शुरू होता है और / साइन से खत्म होता है।
```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
```
Match syntax
```js
// syntax
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'))
```
```sh
["love", index: 2, input: "I love JavaScript. If you do not love JavaScript what else can you love.", groups: undefined]
```
```js
let pattern = /love/gi
console.log(string.match(pattern)) // ["love", "love", "love"]
```
आइए एक रेगुलर एक्सप्रेशन का उपयोग करके टेक्स्ट से नंबर निकालें। यह रेगुलर एक्सप्रेशन खंड नहीं है, घबराओ मत! हम रेगुलर एक्सप्रेशंस को बाद में कवर करेंगे।
```js
let txt = 'In 2019, I ran 30 Days of Python. Now, in 2020 I am 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(txt.match(regEx)) // ["2", "0", "1", "9", "3", "0", "2", "0", "2", "0"]
console.log(txt.match(/\d+/g)) // ["2019", "30", "2020"]
```
20. *repeat()*: यह तर्क के रूप में एक संख्या लेता है और यह स्ट्रिंग के दोहराए गए संस्करण को लौटाता है।
```js
string.repeat(n)
```
```js
let string = 'love'
console.log(string.repeat(10)) // lovelovelovelovelovelovelovelovelovelove
```
## डेटा प्रकार और कास्टिंग की जाँच करना
### डेटा प्रकार की जाँच करना
एक निश्चित चर के डेटा प्रकार की जाँच करने के लिए हम _typeof_ विधि का उपयोग करते हैं।
**उदाहरण:**
```js
// Different javascript data types
// Let's declare different data types
let firstName = 'Asabeneh' // string
let lastName = 'Yetayeh' // string
let country = 'Finland' // string
let city = 'Helsinki' // string
let age = 250 // number, it is not my real age, do not worry about it
let job // undefined, because a value was not assigned
console.log(typeof 'Asabeneh') // string
console.log(typeof firstName) // string
console.log(typeof 10) // number
console.log(typeof 3.14) // number
console.log(typeof true) // boolean
console.log(typeof false) // boolean
console.log(typeof NaN) // number
console.log(typeof job) // undefined
console.log(typeof undefined) // undefined
console.log(typeof null) // object
```
### डेटा प्रकार बदलना (कास्टिंग)
- कास्टिंग: एक डेटा प्रकार को दूसरे डेटा प्रकार में परिवर्तित करना। हम _parseInt()_, _parseFloat()_, _Number()_, _+ साइन_, _str()_ का उपयोग करते हैं
जब हम अंकगणितीय ऑपरेशन करते हैं तो स्ट्रिंग नंबरों को पहले पूर्णांक या फ्लोट में परिवर्तित किया जाना चाहिए यदि यह कोई त्रुटि नहीं देता है।
#### स्ट्रिंग टू इंट
हम स्ट्रिंग संख्या को संख्या में परिवर्तित कर सकते हैं। उद्धरण के अंदर कोई भी संख्या एक स्ट्रिंग संख्या है। एक स्ट्रिंग संख्या का एक उदाहरण: '10', '5', आदि।
हम निम्नलिखित विधियों का उपयोग करके स्ट्रिंग को संख्या में बदल सकते हैं:
- पार्सइंट ()
- संख्या()
- धन चिह्न (+)
```js
let num = '10'
let numInt = parseInt(num)
console.log(numInt) // 10
```
```js
let num = '10'
let numInt = Number(num)
console.log(numInt) // 10
```
```js
let num = '10'
let numInt = +num
console.log(numInt) // 10
```
#### फ्लोट करने के लिए स्ट्रिंग
हम स्ट्रिंग फ्लोट नंबर को फ्लोट नंबर में बदल सकते हैं। कोट के अंदर कोई भी फ्लोट नंबर एक स्ट्रिंग फ्लोट नंबर होता है। स्ट्रिंग फ्लोट संख्या का एक उदाहरण: '9.81', '3.14', '1.44', आदि।
हम निम्नलिखित विधियों का उपयोग करके स्ट्रिंग फ्लोट को नंबर में बदल सकते हैं:
- पार्सफ्लोट ()
- संख्या()
- धन चिह्न (+)
```js
let num = '9.81'
let numFloat = parseFloat(num)
console.log(numFloat) // 9.81
```
```js
let num = '9.81'
let numFloat = Number(num)
console.log(numFloat) // 9.81
```
```js
let num = '9.81'
let numFloat = +num
console.log(numFloat) // 9.81
```
#### फ़्लोट टू इंट
हम फ्लोट नंबरों को पूर्णांकों में बदल सकते हैं।
फ्लोट को इंट में बदलने के लिए हम निम्न विधि का उपयोग करते हैं:
- पार्सइंट ()
```js
let num = 9.81
let numInt = parseInt(num)
console.log(numInt) // 9
```
🌕 आप कमाल हैं। आपने अभी-अभी दिन 2 की चुनौतियाँ पूरी की हैं और आप महानता के रास्ते पर दो कदम आगे हैं। अब अपने मस्तिष्क और अपनी मांसपेशियों के लिए कुछ व्यायाम करें।
## 💻दिन 2: व्यायाम
### व्यायाम: स्तर 1
1. चुनौती नाम के एक चर की घोषणा करें और इसे प्रारंभिक मान **'30 दिनों के जावास्क्रिप्ट' ** पर असाइन करें।
2. __console.log()__ का उपयोग करके ब्राउज़र कंसोल पर स्ट्रिंग प्रिंट करें
3. _console.log()_ का इस्तेमाल करके ब्राउज़र कंसोल पर स्ट्रिंग की __लंबाई__ प्रिंट करें
4. __toUpperCase()__ विधि का उपयोग करके सभी स्ट्रिंग वर्णों को बड़े अक्षरों में बदलें
5. __toLowerCase()__ विधि का उपयोग करके सभी स्ट्रिंग वर्णों को लोअरकेस अक्षरों में बदलें
6. __substr()__ या __substring()__ विधि का उपयोग करके स्ट्रिंग के पहले शब्द को काटें (स्लाइस)
7. *JavaScript के 30 दिन* में से *JavaScript के दिन* वाक्यांश को काटें।
8. जांचें कि स्ट्रिंग में __Script__ शब्द है या नहीं, __includes()__ विधि का उपयोग करके
9. __split()__ विधि का उपयोग करके __string__ को __array__ में विभाजित करें
10. __split()__ विधि का उपयोग करके स्ट्रिंग को 30 दिनों की जावास्क्रिप्ट को अंतरिक्ष में विभाजित करें
11. 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon' स्ट्रिंग को अल्पविराम पर __split__ करें और इसे एक सरणी में बदलें।
12. __replace()__ विधि का उपयोग करके 30 दिनों के जावास्क्रिप्ट को 30 दिनों के पायथन में बदलें।
13. '30 डेज ऑफ जावास्क्रिप्ट' स्ट्रिंग में इंडेक्स 15 पर कैरेक्टर क्या है? __charAt()__ विधि का प्रयोग करें।
14. __charCodeAt()__ का उपयोग करते हुए '30 डेज़ ऑफ़ जावास्क्रिप्ट' स्ट्रिंग में J का वर्ण कोड क्या है
15. जावास्क्रिप्ट के 30 दिनों में __a__ की पहली घटना की स्थिति निर्धारित करने के लिए __indexOf__ का उपयोग करें
16. जावास्क्रिप्ट के 30 दिनों में __a__ की अंतिम घटना की स्थिति निर्धारित करने के लिए __lastIndexOf__ का उपयोग करें।
17. निम्नलिखित वाक्य में शब्द __क्योंकि__ की पहली घटना की स्थिति का पता लगाने के लिए __indexOf__ का उपयोग करें:__'आप एक वाक्य को समाप्त नहीं कर सकते क्योंकि क्योंकि एक संयोजन है'__
18. निम्नलिखित वाक्य में शब्द __क्योंकि__ की अंतिम घटना की स्थिति का पता लगाने के लिए __lastIndexOf__ का उपयोग करें:__'आप एक वाक्य को समाप्त नहीं कर सकते क्योंकि क्योंकि एक संयोजन है'__
19. निम्नलिखित वाक्य में शब्द __क्योंकि__ की पहली घटना की स्थिति का पता लगाने के लिए __खोज__ का उपयोग करें:__'आप एक वाक्य को समाप्त नहीं कर सकते क्योंकि क्योंकि एक संयोजन है'__
20. एक स्ट्रिंग के आरंभ और अंत में किसी भी अनुगामी व्हाट्सएप को हटाने के लिए __trim()__ का उपयोग करें। उदाहरण के लिए '30 डेज ऑफ जावास्क्रिप्ट'।
21. स्ट्रिंग *30 Days Of JavaScript* के साथ __startsWith()__ विधि का उपयोग करें और परिणाम को सही बनाएं
22. स्ट्रिंग *30 Days of JavaScript* के साथ __endsWith()__ विधि का उपयोग करें और परिणाम को सही बनाएं
23. जावास्क्रिप्ट के 30 दिनों में सभी __a__ को खोजने के लिए __मैच ()__ विधि का उपयोग करें
24. __concat()__ का उपयोग करें और '30 दिन के' और 'जावास्क्रिप्ट' को एक स्ट्रिंग, '30 दिन के जावास्क्रिप्ट' में मर्ज करें
25. 30 दिनों के जावास्क्रिप्ट को 2 बार प्रिंट करने के लिए __repeat()__ विधि का उपयोग करें
### व्यायाम: स्तर 2
1. कंसोल.लॉग () का उपयोग करके निम्नलिखित कथन का प्रिंट आउट लें:
```sh
The quote 'There is no exercise better for the heart than reaching down and lifting people up.' by John Holmes teaches us to help one another.
```
2. कंसोल.लॉग () का उपयोग करते हुए मदर टेरेसा के निम्नलिखित उद्धरण को प्रिंट करें:
```sh
"Love is not patronizing and charity isn't about pity, it is about love. Charity and love are the same -- with charity you give love, so don't just give money but reach out your hand instead."
```
3. जांचें कि क्या '10' का प्रकार 10 के बिल्कुल बराबर है। यदि नहीं तो इसे बिल्कुल बराबर करें।
4. जांचें कि क्या parseFloat('9.8') 10 के बराबर है, अगर नहीं तो इसे 10 के बराबर बनाएं।
5. जांचें कि क्या अजगर और शब्दजाल दोनों में 'ऑन' पाया जाता है
6. _मुझे आशा है कि यह पाठ्यक्रम शब्दजाल से भरा नहीं है_। जांचें कि वाक्य में शब्दजाल है या नहीं।
7. समावेशी रूप से 0 और 100 के बीच एक यादृच्छिक संख्या उत्पन्न करें।
8. सम्मिलित रूप से 50 और 100 के बीच एक यादृच्छिक संख्या उत्पन्न करें।
9. 0 और 255 के बीच सम्मिलित रूप से एक यादृच्छिक संख्या उत्पन्न करें।
10. एक यादृच्छिक संख्या का उपयोग करके 'जावास्क्रिप्ट' स्ट्रिंग वर्णों तक पहुंचें।
11. निम्नलिखित पैटर्न को प्रिंट करने के लिए कंसोल.लॉग () और एस्केप कैरेक्टर का उपयोग करें।
```js
1 1 1 1 1
2 1 2 4 8
3 1 3 9 27
4 1 4 16 64
5 1 5 25 125
```
12. निम्नलिखित वाक्य से __क्योंकि क्योंकि__ वाक्यांश को हटाने के लिए __substr__ का उपयोग करें:__'आप एक वाक्य को समाप्त नहीं कर सकते क्योंकि क्योंकि एक संयोजन है'__
### व्यायाम: स्तर 3
1. 'इस दुनिया में प्यार सबसे अच्छी चीज है। कुछ को उनका प्यार मिल गया तो कुछ को अब भी अपने प्यार की तलाश है.' इस वाक्य में __प्यार__ शब्द की संख्या गिनें।
2. निम्नलिखित वाक्य में सभी __क्योंकि__ की संख्या की गणना करने के लिए __मैच ()__ का उपयोग करें:__'आप एक वाक्य को समाप्त नहीं कर सकते क्योंकि क्योंकि एक संयोजन है'__
3. निम्नलिखित पाठ को साफ करें और सबसे अधिक बार आने वाला शब्द खोजें (संकेत, बदलें और नियमित अभिव्यक्ति का उपयोग करें)।
```js
const sentence = '%I $am@% a %tea@cher%, &and& I lo%#ve %te@a@ching%;. The@re $is no@th@ing; &as& mo@re rewarding as educa@ting &and& @emp%o@weri@ng peo@ple. ;I found tea@ching m%o@re interesting tha@n any ot#her %jo@bs. %Do@es thi%s mo@tiv#ate yo@u to be a tea@cher!? %Th#is 30#Days&OfJavaScript &is al@so $the $resu@lt of &love& of tea&ching'
```
4. निम्नलिखित पाठ से संख्याएँ निकालकर व्यक्ति की कुल वार्षिक आय की गणना करें। 'वह प्रति माह वेतन से 5000 यूरो

@ -0,0 +1,668 @@
# 30 दिन जावास्क्रिप्ट: जावास्क्रिप्ट में प्रवेश करने के लिए 30 दिनों का निःशुल्क अभ्यास
| # दिन | विषय |
| ----- | :-------------------------------------------------------------------------------------------------------------------------------------------------: |
| 01 | [परिचय](./readMe.md) |
| 02 | [डेटा प्रकार](./02_Day_Data_types/02_day_data_types.md) |
| 03 | [बूलियन, ऑपरेटर, तिथि](./03_Day_Booleans_operators_date/03_booleans_operators_date.md) |
| 04 | [शर्तों का उपयोग](./04_Day_Conditionals/04_day_conditionals.md) |
| 05 | [एरे](./05_Day_Arrays/05_day_arrays.md) |
| 06 | [लूप](./06_Day_Loops/06_day_loops.md) |
| 07 | [फंक्शन](./07_Day_Functions/07_day_functions.md) |
| 08 | [ऑब्जेक्ट](./08_Day_Objects/08_day_objects.md) |
| 09 | [उच्च आदेश फंक्शन](./09_Day_Higher_order_functions/09_day_higher_order_functions.md) |
| 10 | [सेट्स और मैप्स](./10_Day_Sets_and_Maps/10_day_Sets_and_Maps.md) |
| 11 | [डिस्ट्रक्चरिंग और स्प्रेडिंग](./11_Day_Destructuring_and_spreading/11_day_destructuring_and_spreading.md) |
| 12 | [नियमित अभिव्यक्तियाँ](./12_Day_Regular_expressions/12_day_regular_expressions.md) |
| 13 | [कंसोल ऑब्जेक्ट मेथड](./13_Day_Console_object_methods/13_day_console_object_methods.md) |
| 14 | [त्रुटि हैंडलिंग](./14_Day_Error_handling/14_day_error_handling.md) |
| 15 | [क्लासेस](./15_Day_Classes/15_day_classes.md) |
| 16 | [जेसन](./16_Day_JSON/16_day_json.md) |
| 17 | [वेब स्टोरेजेस](./17_Day_Web_storages/17_day_web_storages.md) |
| 18 | [प्रॉमिसेस](./18_Day_Promises/18_day_promises.md) |
| 19 | [क्लोजर](./19_Day_Closures/19_day_closures.md) |
| 20 | [स्वच्छ कोड लेखन](./20_Day_Writing_clean_codes/20_day_writing_clean_codes.md) |
| 21 | [DOM](./21_Day_DOM/21_day_dom.md) |
| 22 | [DOM ऑब्जेक्ट को मैनिपुलेट करना](./22_Day_Manipulating_DOM_object/22_day_manipulating_DOM_object.md) |
| 23 | [इवेंट लिस्टेनर](./23_Day_Event_listeners/23_day_event_listeners.md) |
| 24 | [मिनी प्रोजेक्ट: सोलर सिस्टम](./24_Day_Project_solar_system/24_day_project_solar_system.md) |
| 25 | [मिनी प्रोजेक्ट: वर्ल्ड कंट्रीज डेटा विजुअलाइजेशन 1](./25_Day_World_countries_data_visualization_1/25_day_world_countries_data_visualization_1.md) |
| 26 | [मिनी प्रोजेक्ट: वर्ल्ड कंट्रीज डेटा विजुअलाइजेशन 2](./26_Day_World_countries_data_visualization_2/26_day_world_countries_data_visualization_2.md) |
| 27 | [मिनी प्रोजेक्ट: पोर्टफोलियो](./27_Day_Mini_project_portfolio/27_day_mini_project_portfolio.md) |
| 28 | [मिनी प्रोजेक्ट: लीडरबोर्ड](./28_Day_Mini_project_leaderboard/28_day_mini_project_leaderboard.md) |
| 29 | [मिनी प्रोजेक्ट: कैरेक्टर्स को एनीमेट करना](./29_Day_Mini_project_animating_characters/29_day_mini_project_animating_characters.md) |
| 30 | [फाइनल प्रोजेक्ट](./30_Day_Mini_project_final/30_day_mini_project_final.md) |
<div>
<small>ज्ञानवर्धक सामग्री बनाने के लिए <strong>लेखक</strong> का समर्थन करें</small> <br />
<a href = "https://www.paypal.me/asabeneh"><img src='./images/paypal_lg.png' alt='Paypal Logo' style="width:10%"/></a>
</div>
<div align="center">
<h1> जावास्क्रिप्ट: 30 दिन का परिचय</h1>
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
</a>
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
</a>
<sub>लेखक:
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">आसाबेनेह येतायेह</a><br>
<small> जनवरी, 2020</small>
</sub>
<div>
🇬🇧 [English](./readMe.md)
🇪🇸 [Spanish](./Spanish/readme.md)
🇮🇹 [Italian](./Italian/readMe.md)
🇷🇺 [Russian](./RU/README.md)
🇹🇷 [Turkish](./Turkish/readMe.md)
🇦🇿 [Azerbaijan](./Azerbaijani/readMe.md)
🇰🇷 [Korean](./Korea/README.md)
🇻🇳 [Vietnamese](./Vietnamese/README.md)
🇵🇱 [Polish](./Polish/readMe.md)
🇧🇷 [Portuguese](./Portuguese/readMe.md)
HI [Hindi](./Hindi/readMe.md)
</div>
</div>
</div>
[दिन 2 >>](./02_Day_Data_types/02_day_data_types.md)
![Thirty Days Of JavaScript](./images/day_1_1.png)
- [JavaScript के 30 दिन](#30-days-of-javascript)
- [📔 दिन 1](#-day-1)
- [परिचय](#introduction)
- [आवश्यकताएं](#requirements)
- [सेटअप](#setup)
- [Node.js का इंस्टॉल करें](#install-nodejs)
- [ब्राउज़र](#browser)
- [Google Chrome का इंस्टॉल करें](#installing-google-chrome)
- [Google Chrome को कॉन्सोल पर खोलें](#opening-google-chrome-console)
- [ब्राउज़र कंसोल पर कोड लिखें](#writing-code-on-browser-console)
- [Console.log](#consolelog)
- [मल्टीपल आर्ग्यूमेंट्स के साथ Console.log](#consolelog-with-multiple-arguments)
- [टिप्पणियां](#comments)
- [सिंटैक्स](#syntax)
- [अंकगणित](#arithmetics)
- [कोड संपादक](#code-editor)
- [Visual Studio Code का इंस्टॉल करें](#installing-visual-studio-code)
- [Visual Studio Code का उपयोग कैसे करें](#how-to-use-visual-studio-code)
- [वेब पृष्ठ में JavaScript जोड़ना](#adding-javascript-to-a-web-page)
- [इनलाइन स्क्रिप्ट](#inline-script)
- [इंटरनल स्क्रिप्ट](#internal-script)
- [एक्सटर्नल स्क्रिप्ट](#external-script)
- [मल्टीपल एक्सटर्नल स्क्रिप्ट](#multiple-external-scripts)
- [डेटा प्रकारों का परिचय](#introduction-to-data-types)
- [अंक](#numbers)
- [स्ट्रिंग्स](#strings)
- [बूलियन](#booleans)
- [अनिर्दिष्ट](#undefined)
- [शून्य](#null)
- [डेटा प्रकारों की जाँच करना](#checking-data-types)
- [फिर से टिप्पणियाँ](#comments-again)
- [वेरिएबल](#variables)
- [💻 दिन 1: अभ्यास](#-day-1-exercises)
# 📔 दिन 1
## परिचय
**उपलब्धियां** JavaScript प्रोग्रामिंग चैलेंज में भाग लेने के फैसले पर बधाई हो। इस चैलेंज में आप एक JavaScript प्रोग्रामर बनने के लिए सब कुछ सीखेंगे, और विस्तृत रूप से प्रोग्रामिंग के संगठन को समझेंगे। चैलेंज के अंत में आपको 30DaysOfJavaScript प्रोग्रामिंग चैलेंज पूरा करने का प्रमाण पत्र मिलेगा। अगर आपको मदद की जरूरत होती है या आप दूसरों की मदद करना चाहते हैं, तो आप टेलीग्राम समूह से जुड़ सकते हैं।
[telegram group](https://t.me/ThirtyDaysOfJavaScript).
**A 30DaysOfJavaScript** एक नौसिखियों और उन्नत जावास्क्रिप्ट डेवलपरों दोनों के लिए एक गाइड है। जावास्क्रिप्ट वेब की भाषा है। मुझे जावास्क्रिप्ट का उपयोग करना और सिखाना दोनों ही बहुत पसंद है और मैं आशा करता हूँ कि आप भी ऐसा ही करेंगे।
इस स्टेप-बाय-स्टेप जावास्क्रिप्ट चैलेंज में, आप जावास्क्रिप्ट सीखेंगे, मानव इतिहास की सबसे लोकप्रिय प्रोग्रामिंग भाषा। जावास्क्रिप्ट का उपयोग **_वेबसाइटों में इंटरैक्टिविटी जोड़ने, मोबाइल ऐप्स, डेस्कटॉप एप्लीकेशन, खेल विकसित करने के लिए जावास्क्रिप्ट का उपयोग किया जाता है।_**
और आजकल जावास्क्रिप्ट का उपयोग **_मशीन लर्निंग_** और **_एआई_** के लिए भी किया जा सकता है। **_जावास्क्रिप्ट (JS)_** हाल के वर्षों में लोकप्रियता में बढ़त हुआ है और छ: निरंतर वर्षों के लिए अग्रणी प्रोग्रामिंग भाषा बन गया है और Github पर सबसे ज्यादा उपयोग की जाने वाली प्रोग्रामिंग भाषा है।
## आवश्यकताएं
इस चैलेंज का पालन करने के लिए प्रोग्रामिंग के किसी भी पूर्व ज्ञान की आवश्यकता नहीं होती है। आपको केवल निम्नलिखित चीजों की जरूरत होती है:
1. प्रेरणा
2. एक कंप्यूटर
3. इंटरनेट
4. एक ब्राउज़र
5. एक कोड संपादक
## सेटअप:
मुझे लगता है कि आपके पास डेवलपर बनने की महत्वाकांक्षा और मोटिवेशन, एक कंप्यूटर और इंटरनेट होंगे। यदि आपके पास ये सभी हैं तो आपके पास शुरू करने के लिए हर चीज है।
### Node.js इंस्टॉल करें
शायद आप अभी Node.js की जरूरत नहीं है, लेकिन बाद में आपको इसकी आवश्यकता हो सकती है। इसे इंस्टॉल करें:
[node.js](https://nodejs.org/en/).
![Node download](images/download_node.png)
डाउनलोड होने के बाद डबल क्लिक करें और इंस्टॉल करें।
![Install node](images/install_node.png)
हम अपने डिवाइस टर्मिनल या कमांड प्रॉम्प्ट को खोलकर देख सकते हैं कि नोड लोकल मशीन पर स्थापित है या नहीं।
```sh
asabeneh $ node -v
v12.14.0
```
### ब्राउज़र
वहाँ कई ब्राउज़र हैं। हालांकि, मैं Google Chrome की अधिष्ठापना गर्मी से सलाह देता हूँ।
#### गूगल क्रोम इंस्टॉल करना
इंस्टॉल [Google Chrome](https://www.google.com/chrome/) यदि आपके पास अभी तक नहीं है, तो आप ब्राउज़र कंसोल पर छोटे जावास्क्रिप्ट कोड लिख सकते हैं, लेकिन हम ब्राउज़र कंसोल का उपयोग एप्लिकेशन विकसित करने के लिए नहीं करते हैं।
![Google Chrome](images/google_chrome.png)
#### Opening Google Chrome Console
आप गूगल क्रोम कंसोल को तीन बिंदुओं पर जाकर खोल सकते हैं: ब्राउज़र के शीर्ष दाहिने कोने पर तीन बिंदुओं पर क्लिक करना, अधिक उपकरण -> डेवलपर उपकरण चुनना या कीबोर्ड शॉर्टकट का उपयोग करना। मैं शॉर्टकट का उपयोग करना पसंद करता हूं।
![Opening chrome](images/opening_developer_tool.png)
Chrome कंसोल खोलने के लिए एक कुंजीपटल शॉर्टकट का उपयोग करना आसान होता है। निम्न चरणों का पालन करें:
```sh
Mac
Command+Option+J
Windows/Linux:
Ctl+Shift+J
```
![Opening console](images/opening_chrome_console_shortcut.png)
जब आप Google Chrome कंसोल खोलते हैं, तो संकेतित बटनों की जांच करने की कोशिश करें। हम अधिकांश समय कंसोल पर व्यतीत करेंगे। कंसोल वह स्थान है जहां आपका JavaScript कोड जाता है। Google Console V8 इंजन आपके JavaScript कोड को मशीन कोड में बदलता है।
आइए हम Google Chrome कंसोल पर एक JavaScript कोड लिखते हैं:
![write code on console](./images/js_code_on_chrome_console.png)
#### ब्राउज़र कंसोल पर कोड लिखना
हम किसी भी जावास्क्रिप्ट कोड को Google कंसोल या किसी भी ब्राउज़र कंसोल पर लिख सकते हैं। लेकिन इस चैलेंज के लिए, हम केवल Google Chrome कंसोल पर ध्यान केंद्रित करेंगे। निम्नलिखित से कंसोल खोलें:
```sh
Mac
Command+Option+I
Windows:
Ctl+Shift+I
```
##### Console.log
हमने अपनी पहली JavaScript code लिखने के लिए एक निर्मित फंक्शन **console.log()** का उपयोग किया। हमने एक तर्क के रूप में इनपुट डेटा को भेजा और फंक्शन आउटपुट प्रदर्शित करता है। हमने console.log() फंक्शन में 'Hello, World' को इनपुट डेटा या तर्क के रूप में भेजा।
```js
console.log('Hello, World!')
```
##### एकाधिक तर्कों के साथ कंसोल.लॉग
**`console.log()`** फ़ंक्शन कॉमा से अलग किए गए कई पैरामीटर ले सकता है। सिंटैक्स इस तरह दिखता है:**`console.log(param1, param2, param3)`**
![console log multiple arguments](./images/console_log_multipl_arguments.png)
```js
console.log('Hello', 'World', '!')
console.log('HAPPY', 'NEW', 'YEAR', 2020)
console.log('Welcome', 'to', 30, 'Days', 'Of', 'JavaScript')
```
जैसा कि आप ऊपर दिए गए स्निपेट कोड से देख सकते हैं, _`console.log()`_ कई तर्क ले सकता है।
बधाई हो! आपने _`console.log()`_ का उपयोग करके अपना पहला JavaScript कोड लिखा था।
##### Comments
हम अपने कोड में टिप्पणियाँ जोड़ सकते हैं। कोड को अधिक पठनीय बनाने और हमारे कोड में टिप्पणी छोड़ने के लिए टिप्पणियाँ बहुत महत्वपूर्ण हैं। जावास्क्रिप्ट हमारे कोड के टिप्पणी भाग को निष्पादित नहीं करता है। जावास्क्रिप्ट में, जावास्क्रिप्ट में // से शुरू होने वाली कोई भी टेक्स्ट लाइन एक टिप्पणी है, और इस तरह संलग्न कुछ भी `//` भी एक टिप्पणी है।
**उदाहरण: सिंगल लाइन टिप्पणी**
```js
// This is the first comment
// This is the second comment
// I am a single line comment
```
**उदाहरण: बहुपंक्ति टिप्पणी**
```js
/*
This is a multiline comment
Multiline comments can take multiple lines
JavaScript is the language of the web
*/
```
##### वाक्य - विन्यास
प्रोग्रामिंग भाषाएं मानव भाषाओं के समान हैं। सार्थक संदेश देने के लिए अंग्रेजी या कई अन्य भाषा शब्दों, वाक्यांशों, वाक्यों, मिश्रित वाक्यों और अन्य का उपयोग करती है। वाक्य-विन्यास का अंग्रेजी अर्थ _भाषा में अच्छी तरह से गठित वाक्य बनाने के लिए शब्दों और वाक्यांशों की व्यवस्था_ है। सिंटैक्स की तकनीकी परिभाषा कंप्यूटर भाषा में कथनों की संरचना है। प्रोग्रामिंग भाषाओं में सिंटैक्स होता है। जावास्क्रिप्ट एक प्रोग्रामिंग लैंग्वेज है और अन्य प्रोग्रामिंग लैंग्वेज की तरह इसका अपना सिंटैक्स है। यदि हम एक सिंटैक्स नहीं लिखते हैं जिसे जावास्क्रिप्ट समझता है, तो यह विभिन्न प्रकार की त्रुटियां उत्पन्न करेगा। हम बाद में विभिन्न प्रकार की जावास्क्रिप्ट त्रुटियों का पता लगाएंगे। अभी के लिए, आइए सिंटैक्स एरर देखें।
![Error](images/raising_syntax_error.png)
मैंने जानबूझकर गलती की है। नतीजतन, कंसोल सिंटैक्स त्रुटियों को उठाता है। दरअसल, वाक्य रचना बहुत जानकारीपूर्ण है। यह बताता है कि किस प्रकार की गलती की गई थी। त्रुटि प्रतिक्रिया दिशानिर्देश पढ़कर, हम सिंटैक्स को सही कर सकते हैं और समस्या को ठीक कर सकते हैं। किसी प्रोग्राम से त्रुटियों को पहचानने और हटाने की प्रक्रिया को डिबगिंग कहा जाता है। आइए त्रुटियों को ठीक करें:
```js
console.log('Hello, World!')
console.log('Hello, World!')
```
अब तक, हमने _`console.log()`_ का उपयोग करके टेक्स्ट को प्रदर्शित करने का तरीका देखा। अगर हम _`console.log()`_ का इस्तेमाल करके टेक्स्ट या स्ट्रिंग प्रिंट कर रहे हैं, तो टेक्स्ट को सिंगल कोट्स, डबल कोट्स या बैकटिक के अंदर होना चाहिए।
**उदाहरण:**
```js
console.log('Hello, World!')
console.log("Hello, World!")
console.log(`Hello, World!`)
```
#### अंकगणित
अब, संख्या डेटा प्रकारों के लिए Google Chrome कंसोल पर _`console.log()`_ का उपयोग करके JavaScript कोड लिखने का अधिक अभ्यास करते हैं।
टेक्स्ट के अलावा, हम जावास्क्रिप्ट का उपयोग करके गणितीय गणनाएँ भी कर सकते हैं। आइए निम्नलिखित सरल गणनाएँ करें।
**_`console.log()`_** फ़ंक्शन के बिना सीधे Google क्रोम कंसोल पर जावास्क्रिप्ट कोड लिखना संभव है। हालाँकि, इसे इस परिचय में शामिल किया गया है क्योंकि इस चुनौती का अधिकांश भाग टेक्स्ट एडिटर में होगा जहाँ फ़ंक्शन का उपयोग अनिवार्य होगा। आप सीधे कंसोल पर निर्देशों के साथ खेल सकते हैं।
![Arithmetic](images/arithmetic.png)
```js
console.log(2 + 3) // Addition
console.log(3 - 2) // Subtraction
console.log(2 * 3) // Multiplication
console.log(3 / 2) // Division
console.log(3 % 2) // Modulus - finding remainder
console.log(3 ** 2) // Exponentiation 3 ** 2 == 3 * 3
```
### कोड संपादक
हम अपने कोड ब्राउज़र कंसोल पर लिख सकते हैं, लेकिन यह बड़ी परियोजनाओं के लिए नहीं होगा। वास्तविक कामकाजी माहौल में, डेवलपर्स अपने कोड लिखने के लिए विभिन्न कोड संपादकों का उपयोग करते हैं। इस 30 दिनों की जावास्क्रिप्ट चुनौती में, हम विज़ुअल स्टूडियो कोड का उपयोग करेंगे।
#### विजुअल स्टूडियो कोड इंस्टॉल करना
विज़ुअल स्टूडियो कोड एक बहुत लोकप्रिय ओपन-सोर्स टेक्स्ट एडिटर है। मैं [download Visual Studio Code] (https://code.visualstudio.com/) करने की सलाह दूंगा, लेकिन यदि आप अन्य संपादकों के पक्ष में हैं, तो आपके पास जो कुछ भी है, उसका बेझिझक अनुसरण करें।
![Vscode](images/vscode.png)
यदि आपने विज़ुअल स्टूडियो कोड स्थापित किया है, तो आइए इसका उपयोग करना शुरू करें।
#### विज़ुअल स्टूडियो कोड का उपयोग कैसे करें
इसके आइकन पर डबल क्लिक करके विजुअल स्टूडियो कोड खोलें। जब आप इसे ओपन करेंगे तो आपको इस तरह का इंटरफेस मिलेगा। लेबल किए गए आइकन के साथ सहभागिता करने का प्रयास करें।
![Vscode ui](./images/vscode_ui.png)
![Vscode ऐड प्रोजेक्ट](./images/adding_project_to_vscode.png)
![Vscode ओपन प्रोजेक्ट](./images/opening_project_on_vscode.png)
![स्क्रिप्ट फ़ाइल](छवियां/scripts_on_vscode.png)
![लाइव सर्वर स्थापित कर रहा है](छवियां/vsc_live_server.png)
![चल रही स्क्रिप्ट](./images/running_script.png)
![कोडिंग चल रहा है](./images/launched_on_new_tab.png)
## वेब पेज में जावास्क्रिप्ट जोड़ना
जावास्क्रिप्ट को वेब पेज में तीन अलग-अलग तरीकों से जोड़ा जा सकता है:
- **_Inline script_**
- **_Internal script_**
- **_External script_**
- **_Multiple External scripts_**
The following sections show different ways of adding JavaScript code to your web page.
### Inline Script
अपने डेस्कटॉप पर या किसी भी स्थान पर प्रोजेक्ट फ़ोल्डर बनाएं, इसे 30DaysOfJS नाम दें और प्रोजेक्ट फ़ोल्डर में **_`index.html`_** फ़ाइल बनाएं। फिर नीचे दिए गए कोड को पेस्ट करें और इसे किसी ब्राउज़र में खोलें, उदाहरण के लिए [Chrome](https://www.google.com/chrome/)।
```html
<!DOCTYPE html>
<html lang="en">
<head>
<title>30DaysOfScript:Inline Script</title>
</head>
<body>
<button onclick="alert('Welcome to 30DaysOfJavaScript!')">Click Me</button>
</body>
</html>
```
अब, आपने अभी-अभी अपनी पहली इनलाइन स्क्रिप्ट लिखी है। हम _`alert()`_ बिल्ट-इन फ़ंक्शन का उपयोग करके एक पॉप अप अलर्ट संदेश बना सकते हैं।
### आंतरिक स्क्रिप्ट
आंतरिक स्क्रिप्ट _`head`_ या _`body`_ में लिखी जा सकती है, लेकिन इसे HTML दस्तावेज़ के मुख्य भाग पर रखना पसंद किया जाता है।
सबसे पहले, हम पृष्ठ के शीर्ष भाग पर लिखते हैं।
```html
<!DOCTYPE html>
<html lang="en">
<head>
<title>30DaysOfScript:Internal Script</title>
<script>
console.log('Welcome to 30DaysOfJavaScript')
</script>
</head>
<body></body>
</html>
```
इसी तरह हम ज्यादातर समय एक आंतरिक स्क्रिप्ट लिखते हैं। जावास्क्रिप्ट कोड को बॉडी सेक्शन में लिखना सबसे पसंदीदा विकल्प है। `console.log()` से आउटपुट देखने के लिए ब्राउज़र कंसोल खोलें।
```html
<!DOCTYPE html>
<html lang="en">
<head>
<title>30DaysOfScript:Internal Script</title>
</head>
<body>
<button onclick="alert('Welcome to 30DaysOfJavaScript!');">Click Me</button>
<script>
console.log('Welcome to 30DaysOfJavaScript')
</script>
</body>
</html>
```
`console.log()` से आउटपुट देखने के लिए ब्राउज़र कंसोल खोलें।
![js code from vscode](./images/js_code_vscode.png)
### बाहरी स्क्रिप्ट
आंतरिक स्क्रिप्ट के समान, बाहरी स्क्रिप्ट का लिंक हेडर या बॉडी पर हो सकता है, लेकिन इसे बॉडी में रखना पसंद किया जाता है।
सबसे पहले, हमें .js एक्सटेंशन के साथ एक बाहरी JavaScript फ़ाइल बनानी चाहिए। .js एक्सटेंशन के साथ समाप्त होने वाली सभी फाइलें जावास्क्रिप्ट फाइलें हैं। अपने प्रोजेक्ट डायरेक्टरी के अंदर इंट्रोडक्शन.जेएस नाम की एक फाइल बनाएं और निम्न कोड लिखें और इस .जेएस फाइल को बॉडी के नीचे लिंक करें।
```js
console.log('Welcome to 30DaysOfJavaScript')
```
_head_ में बाहरी स्क्रिप्ट:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<title>30DaysOfJavaScript:External script</title>
<script src="introduction.js"></script>
</head>
<body></body>
</html>
```
_body_ में बाहरी स्क्रिप्ट:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<title>30DaysOfJavaScript:External script</title>
</head>
<body>
<!-- JavaScript external link could be in the header or in the body -->
<!-- Before the closing tag of the body is the recommended place to put the external JavaScript script -->
<script src="introduction.js"></script>
</body>
</html>
```
`Console.log()` का आउटपुट देखने के लिए ब्राउज़र कंसोल खोलें।
### एकाधिक बाहरी लिपियों
हम कई बाहरी जावास्क्रिप्ट फ़ाइलों को एक वेब पेज से भी लिंक कर सकते हैं।
30DaysOfJS फ़ोल्डर के अंदर एक `helloworld.js` फ़ाइल बनाएं और निम्न कोड लिखें।
```html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Multiple External Scripts</title>
</head>
<body>
<script src="./helloworld.js"></script>
<script src="./introduction.js"></script>
</body>
</html>
```
_आपकी main.js फ़ाइल अन्य सभी स्क्रिप्ट्स के नीचे होनी चाहिए_। इसे याद रखना बहुत जरूरी है।
![Multiple Script](./images/multiple_script.png)
## डेटा प्रकार का परिचय
जावास्क्रिप्ट और अन्य प्रोग्रामिंग भाषाओं में, विभिन्न प्रकार के डेटा प्रकार होते हैं। निम्नलिखित जावास्क्रिप्ट आदिम डेटा प्रकार हैं: _स्ट्रिंग, संख्या, बूलियन, अपरिभाषित, नल_, और _प्रतीक_
### नंबर
- पूर्णांक: पूर्णांक (ऋणात्मक, शून्य और धनात्मक) संख्याएँ
उदाहरण:
... -3, -2, -1, 0, 1, 2, 3 ...
- फ्लोट-पॉइंट नंबर: दशमलव संख्या
उदाहरण
... -3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5 ...
### स्ट्रिंग्स
दो सिंगल कोट्स, डबल कोट्स या बैकटिक्स के बीच एक या अधिक वर्णों का संग्रह।
**उदाहरण:**
```जे.एस
'ए'
'असबेनेह'
"असबेनेह"
'फिनलैंड'
'जावास्क्रिप्ट एक सुंदर प्रोग्रामिंग भाषा है'
'मुझे पढ़ाना पसंद है'
'मुझे आशा है कि आप पहले दिन का आनंद ले रहे हैं'
`हम बैकटिक का उपयोग करके एक स्ट्रिंग भी बना सकते हैं`
'एक तार एक वर्ण जितना छोटा या कई पृष्ठों जितना बड़ा हो सकता है'
'एकल उद्धरण, दोहरे उद्धरण या बैकटिक के तहत कोई भी डेटा प्रकार एक स्ट्रिंग है'
```
### बूलियन्स
बूलियन मान या तो True या False होता है। कोई भी तुलना एक बूलियन मान लौटाती है, जो या तो सत्य या असत्य होता है।
एक बूलियन डेटा प्रकार या तो एक सही या गलत मान होता है।
**उदाहरण:**
```js
true // if the light is on, the value is true
false // if the light is off, the value is false
```
### अपरिभाषित
JavaScript में, यदि हम किसी वेरिएबल को मान निर्दिष्ट नहीं करते हैं, तो मान अपरिभाषित होता है। इसके अलावा, यदि कोई फ़ंक्शन कुछ भी वापस नहीं कर रहा है, तो यह अपरिभाषित हो जाता है।
```js
let firstName
console.log(firstName) // undefined, because it is not assigned to a value yet
```
### व्यर्थ
जावास्क्रिप्ट में शून्य का अर्थ है एक खाली मान।
```js
let emptyValue = null
```
## डेटा प्रकार की जाँच करना
एक निश्चित चर के डेटा प्रकार की जाँच करने के लिए, हम **typeof** ऑपरेटर का उपयोग करते हैं। निम्नलिखित उदाहरण देखें।
```js
console.log(typeof 'Asabeneh') // string
console.log(typeof 5) // number
console.log(typeof true) // boolean
console.log(typeof null) // object type
console.log(typeof undefined) // undefined
```
## दोबारा टिप्पणी करें
याद रखें कि जावास्क्रिप्ट में टिप्पणी करना अन्य प्रोग्रामिंग भाषाओं के समान है। आपके कोड को अधिक पठनीय बनाने के लिए टिप्पणियाँ महत्वपूर्ण हैं।
टिप्पणी करने के दो तरीके हैं:
- _एक पंक्ति टिप्पणी_
- _बहुपंक्ति टिप्पणी_
```js
// commenting the code itself with a single comment
// let firstName = 'Asabeneh'; single line comment
// let lastName = 'Yetayeh'; single line comment
```
मल्टीलाइन टिप्पणी:
```js
/*
let location = 'Helsinki';
let age = 100;
let isMarried = true;
This is a Multiple line comment
*/
```
## वेरिएबल्स
वेरिएबल डेटा के _कंटेनर_ होते हैं। मेमोरी लोकेशन में डेटा को _स्टोर_ करने के लिए वेरिएबल्स का उपयोग किया जाता है। जब एक चर घोषित किया जाता है, तो स्मृति स्थान आरक्षित होता है। जब एक वेरिएबल को एक वैल्यू (डेटा) के लिए असाइन किया जाता है, तो मेमोरी स्पेस उस डेटा से भर जाएगा। एक चर घोषित करने के लिए, हम _var_, _let_, या _const_ कीवर्ड का उपयोग करते हैं।
एक चर के लिए जो एक अलग समय पर बदलता है, हम _let_ का उपयोग करते हैं। यदि डेटा बिल्कुल नहीं बदलता है, तो हम _const_ का उपयोग करते हैं। उदाहरण के लिए, पीआई, देश का नाम, गुरुत्वाकर्षण नहीं बदलता है, और हम _const_ का उपयोग कर सकते हैं। हम इस चुनौती में var का उपयोग नहीं करेंगे और मैं आपको इसका उपयोग करने की अनुशंसा नहीं करता। यह चर घोषित करने का त्रुटि प्रवण तरीका है, इसमें बहुत अधिक रिसाव है। हम var, let, और const के बारे में अन्य सेक्शन (दायरे) में विस्तार से बात करेंगे। अभी के लिए, उपरोक्त स्पष्टीकरण पर्याप्त है।
एक वैध जावास्क्रिप्ट चर नाम को निम्नलिखित नियमों का पालन करना चाहिए:
- एक JavaScript चर नाम किसी संख्या से शुरू नहीं होना चाहिए।
- एक जावास्क्रिप्ट चर नाम डॉलर चिह्न और अंडरस्कोर को छोड़कर विशेष वर्णों की अनुमति नहीं देता है।
- एक जावास्क्रिप्ट चर नाम एक कैमलकेस सम्मेलन का अनुसरण करता है।
- एक JavaScript चर नाम में शब्दों के बीच स्थान नहीं होना चाहिए।
निम्नलिखित वैध जावास्क्रिप्ट चर के उदाहरण हैं।
```js
firstName
lastName
country
city
capitalCity
age
isMarried
first_name
last_name
is_married
capital_city
num1
num_1
_num_1
$num1
year2020
year_2020
```
सूची में पहला और दूसरा चर जावास्क्रिप्ट में घोषित करने के कैमलकेस सम्मेलन का अनुसरण करता है। इस सामग्री में, हम कैमलकेस वेरिएबल्स (कैमलविथवनहंप) का उपयोग करेंगे। हम कक्षाओं की घोषणा करने के लिए CamelCase(CamelWithTwoHump) का उपयोग करते हैं, हम अन्य अनुभागों में कक्षाओं और वस्तुओं के बारे में चर्चा करेंगे।
अमान्य चर का उदाहरण:
```js
first-name
1_num
num_#_1
```
आइए हम विभिन्न डेटा प्रकारों के साथ वेरिएबल्स घोषित करें। एक चर घोषित करने के लिए, हमें चर नाम से पहले _let_ या _const_ कीवर्ड का उपयोग करना होगा। चर नाम के बाद, हम एक समान चिह्न (असाइनमेंट ऑपरेटर) और एक मान (असाइन किए गए डेटा) लिखते हैं।
```js
// Syntax
let nameOfVariable = value
```
NameOfVriable वह नाम है जो मूल्य के विभिन्न डेटा को संग्रहीत करता है। विस्तृत उदाहरणों के लिए नीचे देखें।
**घोषित चर के उदाहरण**
```js
// Declaring different variables of different data types
let firstName = 'Asabeneh' // first name of a person
let lastName = 'Yetayeh' // last name of a person
let country = 'Finland' // country
let city = 'Helsinki' // capital city
let age = 100 // age in years
let isMarried = true
console.log(firstName, lastName, country, city, age, isMarried)
```
```sh
Asabeneh Yetayeh Finland Helsinki 100 true
```
```js
// Declaring variables with number values
let age = 100 // age in years
const gravity = 9.81 // earth gravity in m/s2
const boilingPoint = 100 // water boiling point, temperature in °C
const PI = 3.14 // geometrical constant
console.log(gravity, boilingPoint, PI)
```
```sh
9.81 100 3.14
```
```js
// Variables can also be declaring in one line separated by comma, however I recommend to use a seperate line to make code more readble
let name = 'Asabeneh', job = 'teacher', live = 'Finland'
console.log(name, job, live)
```
```sh
Asabeneh teacher Finland
```
जब आप 01-दिन फ़ोल्डर में index.html फ़ाइल चलाते हैं तो आपको यह प्राप्त करना चाहिए:
![Day one](./images/day_1.png)
🌕 आप अद्भुत हैं! आपने अभी-अभी दिन 1 चुनौती पूरी की है और आप महानता की राह पर हैं। अब अपने मस्तिष्क और मांसपेशियों के लिए कुछ व्यायाम करें।
#💻दिन 1: व्यायाम
1. एक पंक्ति टिप्पणी लिखें जो कहती है, _टिप्पणियां कोड को पठनीय बना सकती हैं_
2. एक और टिप्पणी लिखें जो कहती है, _30DaysOfJavaScript_ में आपका स्वागत है_
3. एक बहुपंक्ति टिप्पणी लिखें जो कहती है, _टिप्पणियां कोड को पठनीय, पुन: उपयोग करने में आसान बना सकती हैं_
_और जानकारीपूर्ण_
4. एक वेरिएबल.जेएस फ़ाइल बनाएं और वेरिएबल घोषित करें और स्ट्रिंग, बूलियन, अपरिभाषित और अशक्त डेटा प्रकार असाइन करें
5. datatypes.js फ़ाइल बनाएं और विभिन्न डेटा प्रकारों की जांच करने के लिए JavaScript **_typeof_** ऑपरेटर का उपयोग करें। प्रत्येक चर के डेटा प्रकार की जाँच करें
6. मान निर्दिष्ट किए बिना चार चर घोषित करें
7. असाइन किए गए मानों के साथ चार चर घोषित करें
8. अपने पहले नाम, अंतिम नाम, वैवाहिक स्थिति, देश और आयु को कई पंक्तियों में संग्रहीत करने के लिए चर घोषित करें
9. एक पंक्ति में अपना पहला नाम, अंतिम नाम, वैवाहिक स्थिति, देश और उम्र स्टोर करने के लिए चर घोषित करें
10. दो चर _myAge_ और _yourAge_ घोषित करें और उन्हें प्रारंभिक मान निर्दिष्ट करें और ब्राउज़र कंसोल पर लॉग इन करें।
```sh
I am 25 years old.
You are 30 years old.
```
🎉 बधाई! 🎉
[दिन 2 >>](./02_Day_Data_types/02_day_data_types.md)
Loading…
Cancel
Save