Skip to content

Commit 1c31e99

Browse files
Merge branch 'master' of https://github.com/Zokhidof/uz.javascript.info into Zokhidof-master
2 parents c73e257 + 047593f commit 1c31e99

File tree

9 files changed

+518
-19
lines changed

9 files changed

+518
-19
lines changed

1-js/01-getting-started/1-intro/article.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,9 @@ Yuqoridagi atamalarni eslab qolish yaxshi, chunki ular netdagi ishlab chiquvchil
5555
5656
Intetptretatorlar murakkab. Ammo asoslari oson.
5757
58-
1. The engine (embedded if it's a browser) reads ("parses") the script.
59-
2. Then it converts ("compiles") the script to the machine language.
60-
3. And then the machine code runs, pretty fast.
61-
1. intetptretator (agar u brauzer bo'lsa, avtomatik o'rnatilgan) skriptni o'qiydi ("tahlil qiladi").
58+
1. Intetptretator (agar u brauzer bo'lsa, avtomatik o'rnatilgan) skriptni o'qiydi ("tahlil qiladi").
59+
2. Keyin u skriptni mashina tiliga o'zgartiradi ("kompilyatsiya qiladi").
60+
3. Va keyin mashina kodi juda tez ishlaydi.
6261
6362
<<<<<<< HEAD
6463
Interpretatatsiya jarayonning har bir bosqichida optimallashtirishlarni qo'llaydi. U hattoki kompilyatsiya qilingan skriptni ishlayotganda kuzatib boradi, u orqali oqib o'tadigan ma'lumotlarni tahlil qiladi va shu bilimga asoslangan holda mashina kodiga optimallashtirishlarni qo'llaydi. Tugatgandan so'ng, skriptlar juda tez ishlaydi.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
**Xato**!
2+
3+
Urunib ko'ring:
4+
5+
```js run
6+
let user = {
7+
name: "John",
8+
go: function() { alert(this.name) }
9+
}
10+
11+
(user.go)() // xato!
12+
```
13+
14+
Ko'pgina brauzerlardagi xato xabari nima bo'lganligini tushunishga imkon bermaydi.
15+
16+
**Xato `user = {...}` dan keyin paydo bo'ladi, chunki nuqta-vergul yo'q.**
17+
18+
Javascript `(user.go)()` qavsidan oldin vergulni qabul qilmaydi, shuning uchun u quyidagi kodni o'qiydi:
19+
20+
```js no-beautify
21+
let user = { go:... }(user.go)()
22+
```
23+
24+
Bundan tashqari, biz bunday qo'shma ifoda sintaktik ravishda `{go: ...}` obyektini `(user.go)` argumenti bilan funktsiya sifatida chaqirishini ko'rishimiz mumkin. Va bu xuddi shu satrda `let user` bilan sodir bo'ladi, shuning uchun `user` obyekti hali aniqlanmagan, shuning uchun xato.
25+
26+
Agar biz nuqta-vergul qo'shsak, barchasi yaxshi:
27+
28+
```js run
29+
let user = {
30+
name: "John",
31+
go: function() { alert(this.name) }
32+
}*!*;*/!*
33+
34+
(user.go)() // John
35+
```
36+
37+
Iltimos e'tibor bering, `(user.go)` atrofidagi qavslar bu erda hech narsa qilmaydi. Odatda ular operatsiyalar tartibini o'rnatadilar, ammo bu erda nuqta `.` baribir avval ishlaydi, shuning uchun hech qanday ta'sir bo'lmaydi. Faqat nuqta-vergul muhim.
38+
39+
40+
41+
42+
43+

1-js/04-object-basics/04-object-methods/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ let user = {
99
};
1010
```
1111

12-
Va, haqiqiy dunyoda, foydalanuvchi *harakat qilishi mumkin*: xarid qilish vositasidan biror narsani tanlash, kirish, chiqish va h.k.
12+
Va, haqiqiy dunyoda, foydalanuvchi *harakat qilishi mumkin*: xarid qilish vositasidan biror narsani tanlash, kirish, chiqish va hk.
1313

1414
Amallar JavaScript-da funktsiyadagi xususiyatlar bilan ifodalanadi.
1515

@@ -270,7 +270,7 @@ sayHi(); // undefined
270270
271271
Bunday holda `this` qat'iy rejimda `undefined`. Agar `this.name` ga kirishga harakat qilsak, xato bo'ladi.
272272
273-
Qat'iy bo'lmagan rejimda `this` qiymati *global obyekt* bo'ladi (brauzerda `window`, biz keyinroq [](info:global-objekt) bobida unga erishamiz. Bunday tarixiy xatti-harakatlarni tuzatish uchun, `"use strict"` dan foydalaning.
273+
Qat'iy bo'lmagan rejimda `this` qiymati *global obyekt* bo'ladi (brauzerda `window`, biz keyinroq [](info:global-object) bobida unga erishamiz. Bunday tarixiy xatti-harakatlarni tuzatish uchun, `"use strict"` dan foydalaning.
274274
275275
<<<<<<< HEAD
276276
Iltimos, shuni yodda tutingki, odatda `this` ni obyektsiz ishlatiladigan funktsiya chaqiruvi odatiy emas, aksincha dasturiy xato. Agar funktsiya `this` ga ega bo'lsa, unda odatda obyekt kontekstida chaqirilishi kerak.
@@ -285,7 +285,7 @@ Agar ilgari boshqa dasturlash tillarini o'rgangan bo'lsangiz, unda siz "bog'liq
285285
<<<<<<< HEAD
286286
JavaScript-da `this` "ozod", uning qiymati chaqiruv vaqtida baholanadi va usul qayerda e'lon qilinganiga bog'liq emas, balki "nuqta oldida" nima bo'lganiga bog'liq.
287287
288-
Ish vaqti tushunchasi `this` ijobiy va salbiy tomonlarga ega. Bir tomondan, funktsiyani turli xil ob'yktlar uchun qayta ishlatish mumkin. Boshqa tomondan, ko'proq moslashuvchanlik xatolar uchun joy ochadi.
288+
Ish vaqti tushunchasi `this` ijobiy va salbiy tomonlarga ega. Bir tomondan, funktsiyani turli xil obyektlar uchun qayta ishlatish mumkin. Boshqa tomondan, ko'proq moslashuvchanlik xatolar uchun joy ochadi.
289289

290290
Bu yerda bizning pozitsiyamiz ushbu tilni loyihalashtirish bo'yicha qarorning yaxshi yoki yomonligini baholash emas. U bilan qanday ishlashni, qanday foyda olish va muammolardan qanday qochish kerakligini organamiz.
291291
```

1-js/04-object-basics/06-constructor-new/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Agar funktsiya `new User(...)` sifatida bajarilsa, u quyidagi amallarni bajaradi
3333
When a function is executed with `new`, it does the following steps:
3434
>>>>>>> fb4fc33a2234445808100ddc9f5e4dcec8b3d24c
3535
36-
1. Yangi bo'sh ob'ekt yaratilib, `this` ga tayinlangan.
36+
1. Yangi bo'sh obyekt yaratilib, `this` ga tayinlangan.
3737
2. Funktsiya tanasi bajariladi. Odatda u `this` ni o'zgartiradi, unga yangi xususiyatlar qo'shadi.
3838
3. `this` ning qiymati qaytariladi.
3939

@@ -279,7 +279,7 @@ To create complex objects, there's a more advanced syntax, [classes](info:classe
279279

280280
Biz bir nechta o'xshash obyektlarni yaratish uchun konstruktor funktsiyalaridan foydalanishimiz mumkin.
281281

282-
JavaScript ko'plab o'rnatilgan til ob'ektlari uchun konstruktor funktsiyalarini taqdim etadi: sanalar uchun `Data`, to'plamlar uchun `Set` va biz o'rganishni rejalashtirgan boshqa narsalar.
282+
JavaScript ko'plab o'rnatilgan til obyektlari uchun konstruktor funktsiyalarini taqdim etadi: sanalar uchun `Data`, to'plamlar uchun `Set` va biz o'rganishni rejalashtirgan boshqa narsalar.
283283

284284
```smart header="Obyektlar, biz qaytib kelamiz!"
285285
Ushbu bobda biz faqat obyektlar va konstruktorlar haqida asoslarni ko'rib chiqdik. Ular keyingi boblarda ma'lumotlar turlari va funktsiyalari haqida ko'proq bilish uchun juda muhimdir.

1-js/05-data-types/07-map-set-weakmap-weakset/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ weakMap.set("test", "Whoops"); // Xato, chunki "test" obyekt emas
308308
*/!*
309309
```
310310
311-
Endi, agar biz ob'ektni kalit sifatida ishlatsak va u obyektga boshqa havolalar bo'lmasa - u xotiradan (va map obyektidan) avtomatik ravishda o'chiriladi.
311+
Endi, agar biz obyektni kalit sifatida ishlatsak va u obyektga boshqa havolalar bo'lmasa - u xotiradan (va map obyektidan) avtomatik ravishda o'chiriladi.
312312
313313
```js
314314
let john = { name: "John" };
@@ -338,7 +338,7 @@ JavaScript interpretatori buni hal qiladi. Zudlik bilan xotirani tozalashni amal
338338
339339
Endi bunday narsa bizga qayerda kerak?
340340
341-
"WeakMap" g'oyasi shundan iboratki, biz obyekt uchun faqat ob'ekt mavjud bo'lganda bo'lishi kerak bo'lgan narsalarni saqlashimiz mumkin. Ammo biz obyektni shunchaki u uchun biror narsa saqlashimiz bilan yashashga majburlamaymiz.
341+
"WeakMap" g'oyasi shundan iboratki, biz obyekt uchun faqat obyekt mavjud bo'lganda bo'lishi kerak bo'lgan narsalarni saqlashimiz mumkin. Ammo biz obyektni shunchaki u uchun biror narsa saqlashimiz bilan yashashga majburlamaymiz.
342342
343343
```js
344344
weakMap.set(john, "maxfiy hujjatlar");

1-js/11-async/07-microtask-queue/promiseQueue.svg

Lines changed: 1 addition & 1 deletion
Loading

1-js/12-generators-iterators/2-async-iterators-generators/article.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ Agar kerak bo'lsa, iltimos, muntazam takrorlanuvchilar haqida batafsil ma'lumot
9494
9595
Obyektni asinxron qilib takrorlash uchun:
9696
1. Biz `Symbol.iterator` o'rniga `Symbol.asyncIterator` dan foydalanishimiz kerak.
97-
2. `next()` va'dani qaytarishi kerak.
97+
2. `next()` promisni qaytarishi kerak.
9898
3. Bunday obyekt ustida takrorlash uchun biz `for await (let item of iterable)` tsikldan foydalanishimiz kerak.
9999
100100
Oldingi kabi takrorlanadigan `range` obyektini yarataylik, ammo endi u qiymatlarni asinxron ravishda bir soniyada bir marta qaytaradi:
@@ -146,7 +146,7 @@ let range = {
146146
*!*
147147
async next() { // (2)
148148
// u qiymatni obyekt sifatida qaytarishi kerak {done:.., value :...}
149-
// (avtomatik ravishda async tomonidan va'daga o'ralgan)
149+
// (avtomatik ravishda async tomonidan promisga o'ralgan)
150150
*/!*
151151

152152
// ichida await ishlatishi mumkin, async narsalarni bajaring:
@@ -187,7 +187,7 @@ Ko'rib turganimizdek, komponentlar odatiy ketma-ket saraluvchanlarga o'xshaydi:
187187
188188
1. Obyektni sinxron ravishda takrorlash uchun uning `Symbol.asyncIterator` `(1)` usuli bo'lishi kerak.
189189
2. Obyektni `next()` usuli bilan qaytarib berish kerak `(2)`.
190-
3. `Next()` usuli `async` bo'lishi shart emas, u va'dani qaytaradigan odatiy usul bo'lishi mumkin, ammo `async` ichidagi `await` dan foydalanishga imkon beradi. Bu yerda biz bir soniyani kechiktiramiz `(3)`.
190+
3. `Next()` usuli `async` bo'lishi shart emas, u promisni qaytaradigan odatiy usul bo'lishi mumkin, ammo `async` ichidagi `await` dan foydalanishga imkon beradi. Bu yerda biz bir soniyani kechiktiramiz `(3)`.
191191
4. Takrorlash uchun biz "kutish uchun (diapazonning qiymatiga yo'l qo'ying)" (4) dan foydalanamiz, ya'ni "for" dan keyin "await" ni qo'shamiz. U bir marta `range[Symbol.asyncIterator]()` oralig'ini, so'ngra qiymatlar uchun `next()` ni chaqiradi.
192192
193193
Mana kichik eslatma:
@@ -359,9 +359,9 @@ And then use `for await (...)` to iterate over it, like this:
359359
<<<<<<< HEAD
360360
Endi biz `for await...of` bilan takrorlanadigan asinxronizatsiya generatoriga egamiz.
361361
362-
Bu haqiqatan ham juda oddiy. Biz `async` kalit so'zini qo'shamiz va generator endi uning ichida `await` dan foydalanishi mumkin, va'da va boshqa asinxron funktsiyalarga tayanishi mumkin.
362+
Bu haqiqatan ham juda oddiy. Biz `async` kalit so'zini qo'shamiz va generator endi uning ichida `await` dan foydalanishi mumkin, promis va boshqa asinxron funktsiyalarga tayanishi mumkin.
363363
364-
Texnik jihatdan, asinxron generatorning yana bir farqi shundaki, uning `generator.next()` usuli endi asinxron bo'lib, u va'dalarni qaytaradi.
364+
Texnik jihatdan, asinxron generatorning yana bir farqi shundaki, uning `generator.next()` usuli endi asinxron bo'lib, u promislarni qaytaradi.
365365
366366
Muntazam, asinxron generator uchun `result = generator.next()` o'rniga quyidagi qiymatlarni olish mumkin:
367367
=======
@@ -417,7 +417,7 @@ for(let value of range) {
417417
}
418418
```
419419
420-
Bu yerda moslashtirilgan `range` ob'ekti takrorlanadi va `*[Symbol.iterator]` generatori ro'yxat qiymatlari mantig'ini amalga oshiradi.
420+
Bu yerda moslashtirilgan `range` obyekti takrorlanadi va `*[Symbol.iterator]` generatori ro'yxat qiymatlari mantig'ini amalga oshiradi.
421421
422422
Agar biz generatorga asinxron amallarni qo'shishni xohlasak, biz `Symbol.iterator` o'rnini `Symbol.asyncIterator` bilan moslashtiramiz:
423423
=======

1-js/13-modules/03-modules-dynamic-imports/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Ammo modulni talabga binoan qanday qilib dinamik ravishda import qilamiz?
4040

4141
## import() funktsiya
4242

43-
`import(module)` funksiyasini istalgan joydan chaqirish mumkin. Bu modul obyektida hal qilinadigan va'dani qaytaradi.
43+
`import(module)` funksiyasini istalgan joydan chaqirish mumkin. Bu modul obyektida hal qilinadigan promisni qaytaradi.
4444

4545
Foydalanish tartibi quyidagicha:
4646
=======

0 commit comments

Comments
 (0)