You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/01-getting-started/1-intro/article.md
+3-4Lines changed: 3 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,10 +34,9 @@ Yuqoridagi atamalarni eslab qolish yaxshi, chunki ular netdagi ishlab chiquvchil
34
34
35
35
Intetptretatorlar murakkab. Ammo asoslari oson.
36
36
37
-
1. The engine (embedded if it's a browser) reads ("parses") the script.
38
-
2. Then it converts ("compiles") the script to the machine language.
39
-
3. And then the machine code runs, pretty fast.
40
-
1. intetptretator (agar u brauzer bo'lsa, avtomatik o'rnatilgan) skriptni o'qiydi ("tahlil qiladi").
37
+
1. Intetptretator (agar u brauzer bo'lsa, avtomatik o'rnatilgan) skriptni o'qiydi ("tahlil qiladi").
38
+
2. Keyin u skriptni mashina tiliga o'zgartiradi ("kompilyatsiya qiladi").
39
+
3. Va keyin mashina kodi juda tez ishlaydi.
41
40
42
41
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.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/05-types/article.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -173,13 +173,13 @@ alert(x); // "undefined"
173
173
174
174
...Ammo buni qilishni tavsiya etmaymiz. Odatda, biz o'zgaruvchiga "bo'sh" yoki "noma'lum" qiymatlarni berish uchun `null` dan foydalanamiz va o'zgaruvchanlar tayinlanganligini tekshirish uchun `undefined` dan foydalanamiz.
175
175
176
-
## Ob'yektlar va Belgilar
176
+
## Obyektlar va Belgilar
177
177
178
178
`object` turi maxsusdir.
179
179
180
-
Boshqa barcha turlar "ibtidoiy" deb nomlanadi, chunki ularning qiymatlari faqat bitta narsani o'z ichiga olishi mumkin (matn, raqam yoki boshqa narsalar). Aksincha, ob'yektlar ma'lumotlar to'plamlarini va murakkabroq subyektlarni saqlash uchun ishlatiladi. Biz ob'yekt haqida ko'proq kengi bobda <info:object> bilib olamiz.
180
+
Boshqa barcha turlar "ibtidoiy" deb nomlanadi, chunki ularning qiymatlari faqat bitta narsani o'z ichiga olishi mumkin (matn, raqam yoki boshqa narsalar). Aksincha, obyektlar ma'lumotlar to'plamlarini va murakkabroq subyektlarni saqlash uchun ishlatiladi. Biz obyekt haqida ko'proq kengi bobda <info:object> bilib olamiz.
181
181
182
-
`Symbol` turi ob'yektlar uchun noyob identifikatorlarni yaratish uchun ishlatiladi. To'liqlik uchun bu yerda eslatib o'tishimiz kerak, ammo ob'yektlardan keyin ushbu turni o'rganish yaxshiroqdir.
182
+
`Symbol` turi obyektlar uchun noyob identifikatorlarni yaratish uchun ishlatiladi. To'liqlik uchun bu yerda eslatib o'tishimiz kerak, ammo obyektlardan keyin ushbu turni o'rganish yaxshiroqdir.
183
183
184
184
## Typeof operatori
185
185
@@ -192,7 +192,7 @@ Ikkita shakili sintaksisning qo'llab-quvvatlaydi:
192
192
193
193
Boshqacha qilib aytganda, bu qavs bilan yoki ularsiz ishlaydi. Natija bir xil.
194
194
195
-
`Typeof x`ning qo'ngiroq qilganda u matni argument turi bilan qaytaradi
195
+
`Typeof x`ning qo'ngiroq qilganda u matnni argument turi bilan qaytaradi
Oxirgi uchta satr qo'shimcha tushuntirishga muhtoj bo'lishi mumkin:
222
222
223
-
1.`Math` - bu matematik operatsiyalarni ta'minlaydigan Javascriptning ichida o'rnatilgan ob'yekt. Biz buni <info:number> bobida bilib olamiz. Bu yerda u xuddi ob'yekt rolida bo'lib xizmat qiladi.
224
-
2.`Typeof null`ning natijasi `"object"`. Bu noto'g'ri. Bu moslik uchun saqlanadigan `typeof` da rasmiy tan olingan xato. Albatta, `null`ob'yekt emas. Bu o'ziga xos alohida turga ega bo'lgan maxsus qiymatdir. Demak, bu tilning ichidagi xato.
225
-
3.`typeof alert`ning natijasi `"function"`dir, chunki `alert` tilning funktsiyasidir. Keyingi boblarda biz funktsiyalarni o'rganamiz, bu yerda JavaScript da maxsus "funktsiya" turi yo'qligini ko'rasiz. Funktsiyalar ob'yekt turiga tegishli. Ammo `typeof` ularga boshqacha munosabatda. Rasmiy ravishda bu noto'g'ri, ammo amalda juda qulay.
223
+
1.`Math` - bu matematik operatsiyalarni ta'minlaydigan Javascriptning ichida o'rnatilgan obyekt. Biz buni <info:number> bobida bilib olamiz. Bu yerda u xuddi obyekt rolida bo'lib xizmat qiladi.
224
+
2.`Typeof null`ning natijasi `"object"`. Bu noto'g'ri. Bu moslik uchun saqlanadigan `typeof` da rasmiy tan olingan xato. Albatta, `null`obyekt emas. Bu o'ziga xos alohida turga ega bo'lgan maxsus qiymatdir. Demak, bu tilning ichidagi xato.
225
+
3.`typeof alert`ning natijasi `"function"`dir, chunki `alert` tilning funktsiyasidir. Keyingi boblarda biz funktsiyalarni o'rganamiz, bu yerda JavaScript da maxsus "funktsiya" turi yo'qligini ko'rasiz. Funktsiyalar obyekt turiga tegishli. Ammo `typeof` ularga boshqacha munosabatda. Rasmiy ravishda bu noto'g'ri, ammo amalda juda qulay.
226
226
227
227
228
228
## Xulosa
@@ -240,7 +240,7 @@ JavaScript-da 7 ta asosiy ma'lumotlar turi mavjud.
240
240
`Typeof` operatori bizga qaysi tur o'zgaruvchida saqlanganligini ko'rish imkonini beradi.
241
241
242
242
- Ikki shakl: `typeof x` yoki `typeof(x)`.
243
-
-`"String"` kabi turdagi nomi bilan matni qaytaradi.
244
-
-`Null` uchun `"object"` qaytaradi -- bu tilda xato, aslida bu ob'yekt emas.
243
+
-`"String"` kabi turdagi nomi bilan matnni qaytaradi.
244
+
-`Null` uchun `"object"` qaytaradi -- bu tilda xato, aslida bu obyekt emas.
245
245
246
-
Keyingi boblarda biz ibtidoiy qadriyatlarga e'tibor qaratamiz va ular bilan tanishib bo'lgach, ob'yektlarga o'tamiz.
246
+
Keyingi boblarda biz ibtidoiy qadriyatlarga e'tibor qaratamiz va ular bilan tanishib bo'lgach, obyektlarga o'tamiz.
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/04-object-methods/2-check-syntax/solution.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ Javascript `(user.go)()` qavsidan oldin vergulni qabul qilmaydi, shuning uchun u
21
21
let user = { go:... }(user.go)()
22
22
```
23
23
24
-
Bundan tashqari, biz bunday qo'shma ifoda sintaktik ravishda `{go: ...}`ob'ektini`(user.go)` argumenti bilan funktsiya sifatida chaqirishini ko'rishimiz mumkin. Va bu xuddi shu satrda `let user` bilan sodir bo'ladi, shuning uchun `user`ob'ekti hali aniqlanmagan, shuning uchun xato.
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.
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/04-object-methods/article.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ let user = {
9
9
};
10
10
```
11
11
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.
13
13
14
14
Amallar JavaScript-da funktsiyadagi xususiyatlar bilan ifodalanadi.
15
15
@@ -214,7 +214,7 @@ sayHi(); // undefined
214
214
215
215
Bunday holda `this` qat'iy rejimda `undefined`. Agar `this.name` ga kirishga harakat qilsak, xato bo'ladi.
216
216
217
-
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.
217
+
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.
218
218
219
219
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.
220
220
@@ -223,7 +223,7 @@ Agar ilgari boshqa dasturlash tillarini o'rgangan bo'lsangiz, unda siz "bog'liq
223
223
224
224
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.
225
225
226
-
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.
226
+
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.
227
227
228
228
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.
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/06-constructor-new/article.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,7 @@ alert(user.isAdmin); // false
29
29
30
30
Agar funktsiya `new User(...)` sifatida bajarilsa, u quyidagi amallarni bajaradi:
31
31
32
-
1. Yangi bo'sh ob'ekt yaratilib, `this` ga tayinlangan.
32
+
1. Yangi bo'sh obyekt yaratilib, `this` ga tayinlangan.
33
33
2. Funktsiya tanasi bajariladi. Odatda u `this` ni o'zgartiradi, unga yangi xususiyatlar qo'shadi.
34
34
3.`this` ning qiymati qaytariladi.
35
35
@@ -220,7 +220,7 @@ john = {
220
220
221
221
Biz bir nechta o'xshash obyektlarni yaratish uchun konstruktor funktsiyalaridan foydalanishimiz mumkin.
222
222
223
-
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.
223
+
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.
224
224
225
225
```smart header="Obyektlar, biz qaytib kelamiz!"
226
226
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.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/04-array/article.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Obyektlar qadriyatlar to'plamini saqlashga imkon beradi. Juda soz.
4
4
5
-
Ammo ko'pincha biz *ro'yhatlangan to'plamga* ehtiyoj sezamiz, bu yerda bizda 1 chi, 2 chi, 3 chi element va h.k. Masalan, biz biror narsaning ro'yxatini saqlashimiz kerak: foydalanuvchilar, tovarlar, HTML elementlari va boshqalar.
5
+
Ammo ko'pincha biz *ro'yhatlangan to'plamga* ehtiyoj sezamiz, bu yerda bizda 1 chi, 2 chi, 3 chi element va hk. Masalan, biz biror narsaning ro'yxatini saqlashimiz kerak: foydalanuvchilar, tovarlar, HTML elementlari va boshqalar.
6
6
7
7
Bu erda obyektni ishlatish qulay emas, chunki u elementlarning tartibini boshqarish usullarini taqdim etmaydi. Mavjud bo'lganlar orasida "o'rtasiga" yangi xususiyat kiritolmaymiz. Obyektlar bunday foydalanish uchun mo'ljallanmagan.
8
8
@@ -300,7 +300,7 @@ for (let fruit of fruits) {
300
300
301
301
`for..of` joriy element raqamiga kirish huquqini bermaydi, faqat uning qiymatiga, lekin aksariyat hollarda bu yetarli. Va bu qisqaroq.
302
302
303
-
Texnik jihatdan, massivlar ob'ekt bo'lgani uchun `for..in` dan foydalanish ham mumkin:
303
+
Texnik jihatdan, massivlar obyekt bo'lgani uchun `for..in` dan foydalanish ham mumkin:
304
304
305
305
```js run
306
306
let arr = ["Olma", "Apelsin", "Nok"];
@@ -315,7 +315,7 @@ for (let key in arr) {
315
315
Ammo bu aslida yomon fikr. U bilan bog'liq muammolar mavjud:
316
316
317
317
1.`For..in` tsikli nafaqat raqamli xususiyatlarni, balki *barcha xususiyatlarni* takrorlaydi.
318
-
Brauzerda va boshqa muhitda "massivga o'xshash" deb nomlangan ob'ektlar mavjud, ular *massivlarga o'xshaydi*. Ya'ni, ular `length` va indekslar xususiyatlariga ega, ammo ular boshqa raqamli bo'lmagan xususiyatlar va usullarga ham ega bo'lishi mumkin, ular odatda bizga kerak emas. `for..in` tsikl ularni ro'yxatlaydi. Agar biz massivga o'xshash narsalar bilan ishlashimiz kerak bo'lsa, unda bu "qo'shimcha" xususiyatlar muammoga aylanishi mumkin.
318
+
Brauzerda va boshqa muhitda "massivga o'xshash" deb nomlangan obyektlar mavjud, ular *massivlarga o'xshaydi*. Ya'ni, ular `length` va indekslar xususiyatlariga ega, ammo ular boshqa raqamli bo'lmagan xususiyatlar va usullarga ham ega bo'lishi mumkin, ular odatda bizga kerak emas. `for..in` tsikl ularni ro'yxatlaydi. Agar biz massivga o'xshash narsalar bilan ishlashimiz kerak bo'lsa, unda bu "qo'shimcha" xususiyatlar muammoga aylanishi mumkin.
319
319
320
320
2.`for..in` tsikli massivlar uchun emas, balki umumiy obyektlar uchun optimallashtirilgan va shuning uchun 10-100 marta sekinroq. Albatta, bu hali ham juda tez. Tezlashish faqat to'siqlarda muhim bo'lishi mumkin yoki ahamiyatsiz bo'lib tuyulishi mumkin. Ammo shunga qaramay, farqni bilishimiz kerak.
321
321
@@ -428,7 +428,7 @@ alert( "1,2" + 1 ); // "1,21"
428
428
429
429
## Xulosa
430
430
431
-
Array - ro'yhatlangan ma'lumotlar elementlarini saqlash va boshqarish uchun mos bo'lgan maxsus ob'ekt turi.
431
+
Array - ro'yhatlangan ma'lumotlar elementlarini saqlash va boshqarish uchun mos bo'lgan maxsus obyekt turi.
- Iltimos, usullarning qanday saqlanishiga e'tibor bering. Ular oddiygina ichki ob'ektga qo'shiladi.
2
+
- Iltimos, usullarning qanday saqlanishiga e'tibor bering. Ular oddiygina ichki obyektga qo'shiladi.
3
3
- Barcha testlar va raqamli konvertatsiyalar `hisoblash` usulida amalga oshiriladi. Kelajakda u yanada murakkab iboralarni qo'llab-quvvatlash uchun kengaytirilishi mumkin.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/07-map-set-weakmap-weakset/article.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -308,7 +308,7 @@ weakMap.set("test", "Whoops"); // Xato, chunki "test" obyekt emas
308
308
*/!*
309
309
```
310
310
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.
312
312
313
313
```js
314
314
let john = { name: "John" };
@@ -338,7 +338,7 @@ JavaScript interpretatori buni hal qiladi. Zudlik bilan xotirani tozalashni amal
338
338
339
339
Endi bunday narsa bizga qayerda kerak?
340
340
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.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/09-destructuring-assignment/article.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -391,7 +391,7 @@ alert(item2); // Donut
391
391
392
392
Va nihoyat, biz standart qiymatdan `width`, `height`, `item1`, `item2` va `title` ga egamiz.
393
393
394
-
Bu ko'pincha destrukturalashtirish bilan sodir bo'ladi. Bizda juda ko'p xususiyatlarga ega bo'lgan murakkab ob'ekt mavjud va faqat kerakli narsalarni ajratib olishni xohlaymiz.
394
+
Bu ko'pincha destrukturalashtirish bilan sodir bo'ladi. Bizda juda ko'p xususiyatlarga ega bo'lgan murakkab obyekt mavjud va faqat kerakli narsalarni ajratib olishni xohlaymiz.
Bu yerda biz juda qattiqqo'lmiz. Mulklar ro'yxati butun obyekt tuzilishiga qo'llaniladi. Shuning uchun ishtirokchilar bo'sh, chunki `name` ro'yxatda yo'q.
217
+
Bu yerda biz juda qattiqqo'lmiz. Xususiyatlar ro'yxati butun obyekt tuzilishiga qo'llaniladi. Shuning uchun ishtirokchilar bo'sh, chunki `name` ro'yxatda yo'q.
218
218
219
219
Tsiklik ma'lumotnomani keltirib chiqaradigan `room.occupiedBy` dan tashqari har qanday xususiyatni o'z ichiga olaylik:
Endi `occupiedBy` dan tashqari hamma narsa seriyalashtirilgan. Ammo mulk ro'yxati juda uzun.
244
+
Endi `occupiedBy` dan tashqari hamma narsa seriyalashtirilgan. Ammo xususiyat ro'yxati juda uzun.
245
245
246
246
Yaxshiyamki, biz `o'rnini bosuvchi` sifatida massiv o'rniga funktsiyadan foydalanishimiz mumkin.
247
247
@@ -282,7 +282,7 @@ number: 23
282
282
283
283
Iltimos, shuni yodda tutingki, `replacer` funktsiyasi har bir kalit/qiymat juftligini, shu jumladan ichki obyektlar va massiv elementlarini oladi. U rekursiv tarzda qo'llaniladi. `this` ichidagi `replacer` qiymat - joriy xususiyatni o'z ichiga olgan obyekt.
284
284
285
-
Birinchi chaqiruv maxsus. U maxsus "o'rash ob'ekti" yordamida tayyorlanadi: `{"": meetup}`. Boshqacha qilib aytganda, birinchi `(kalit, qiymat)` jufti bo'sh kalitga ega va qiymat umuman maqsadli obyektdir. Shuning uchun birinchi satr yuqoridagi misolda `":[object Object]"` dir.
285
+
Birinchi chaqiruv maxsus. U maxsus "o'rash obyekti" yordamida tayyorlanadi: `{"": meetup}`. Boshqacha qilib aytganda, birinchi `(kalit, qiymat)` jufti bo'sh kalitga ega va qiymat umuman maqsadli obyektdir. Shuning uchun birinchi satr yuqoridagi misolda `":[object Object]"` dir.
286
286
287
287
Ushbu g'oya `replacer` ga imkon qadar ko'proq kuch berishdir: agar kerak bo'lsa, butun obyektni tahlil qilish va almashtirish/o'tkazib yuborish imkoniyati mavjud.
0 commit comments