Ways to declare variables in javascript.!
Tags: javascript, variables
Published: 2024-06-23 08:43:54

Ways to declare variables in javascript.!
Javascriptda o'zgaruvchilarni e'lon qilish usullari.!!!

JavaScriptda o'zgaruvchilarni  3 xil "key words" kalitli ifodalar bilan e'lon qilish mumkin. 
Bular: `var `, `let `, `const`.!

`var`
```
var name_ = 'JavaScript';
console.log(name_);
// natija - JavaScript
```

`let`
```
let name_ = 'JavaScript';
console.log(name_);
// natija - JavaScript
```

`const`
```
const name_ = 'JavaScript';
console.log(name_);
// natija - JavaScript
```

Misolda ko'rinibturibdiki o'zgaruvchilarni uchala kalit so'z bilan e'lon qilgandaham birxil natija bermoqda ammo ular orasida e'lon qilish usullarida va block scope {} da ishlashida bazi farqlar bor ushbu farqlarni  birma-bir ko'ribo'tamiz.!

**_Uchala_** kalit so'z bilan e'lon qilinadigan o'zgaruvchilar uchun umumiy bir qoida bor. 
o'zgaruvchini e'lon qilgandan keyingina ishlatish "chaqirish" to'g'ri yo'l, agar o'zgaruvchini e'lon qilishdan avval ishlatsak xatolikka olibkeladi.!!!




## different between `var`, `let`, `const`

## **`var` **

> 1
```
var CssFramework = 'Bootstrap';
console.log(CssFramework);
// natija - Bootstrap

var CssFramework = 'TailwindCss';
console.log(CssFramework);
// natija - TailwindCss
```
Ko'rinibturibdiki `var` kalit so'zi bilan o'zgaruvchini qayta e'lon qilsa bo'ladi.!


> 2
```
var CssFramework = 'Bootstrap';
console.log(CssFramework);
// natija - Bootstrap

CssFramework = 'TailwindCss';
console.log(CssFramework);
// natija - TailwindCss
```
`var` kalit so'zi bilan e'lon qilingan o'zgaruvchiga qayta qiymat tayinlasa bo'ladi.!


> 3
```
{
var CssFramework = 'Bootstrap';
}
console.log(CssFramework);
// natija - Bootstrap
```
`var ` bilan e'lon qilingan o'zgaruvchilar block scope {} ga ega emas 
ya'ni e'lon qilingan o'zgaruvchini block scope {} dan tashqariga chaqirsakham ishlaydi.!


## **let**
> 1
```
let CssFramework = 'Bootstrap';
console.log(CssFramework);
// natija - Bootstrap

let CssFramework = 'TailwindCss';
console.log(CssFramework);
// natija - SyntaxError: Identifier 'CssFramework' has already been declared 
```
ko'rinibturibdiki `let` kalit so'zi bilan e'lon qilingan o'zgaruvchini boshqa qiymat bilan qayta e'lon qilsak xatolikka olibkeladi ya'ni qayta e'lon qilibbo'lmaydi.!

> 2
```
let CssFramework = 'Bootstrap';
console.log(CssFramework);
// natija - Bootstrap

CssFramework = 'TailwindCss';
console.log(CssFramework);
// natija - TailwindCss
```
`let` kalit so'zi bilan e'lon qilingan o'zgaruvchiga qayta qiymat tayinlasa bo'ladi.!

> 3
```
{
let CssFramework = 'Bootstrap';
}
console.log(CssFramework);
// natija - ReferenceError: CssFramework is not defined
```
`let ` bilan e'lon qilingan o'zgaruvchilar block scope {} ga ega, 
ya'ni e'lon qilingan o'zgaruvchini block scope {} dan tashqariga chaqirsak ishlamaydi.!


## **const**
> 1
```
const CssFramework = 'Bootstrap';
console.log(CssFramework);
// natija - Bootstrap

const CssFramework = 'TailwindCss';
console.log(CssFramework);
// natija - SyntaxError: Identifier 'CssFramework' has already been declared 
```
ko'rinibturibdiki `const` kalit so'zi bilan e'lon qilingan o'zgaruvchini boshqa qiymat bilan qayta e'lon qilsak xatolikka olibkeladi ya'ni qayta e'lon qilibbo'lmaydi.! 

> 2
```
const CssFramework = 'Bootstrap';
console.log(CssFramework);
// natija - Bootstrap

CssFramework = 'TailwindCss';
console.log(CssFramework);
// natija - TypeError: Assignment to constant variable.
```
`const` kalit so'zi bilan e'lon qilingan o'zgaruvchiga qayta qiymat tayinlabbo'lmaydi, xatolikka olibkeladi.!

> 3
```
{
const CssFramework = 'Bootstrap';
}
console.log(CssFramework);
// natija - ReferenceError: CssFramework is not defined
```
`const` bilan e'lon qilingan o'zgaruvchilar block scope {} ga ega, 
ya'ni e'lon qilingan o'zgaruvchini block scope {} dan tashqariga chaqirsak ishlamaydi.!