Brogrammist
Открыть в Telegram
Veb-dasturlash bo'yicha kamtarona bilim va tajribalarimni ulashaman. Konsultatsiya: https://connected.uz/x/DiyorbekSadullaev Sayt: https://diyorbek.blog YouTube: https://youtube.com/@brogrammistuz Insta: https://instagram.com/brogrammistuz
Больше1 205
Подписчики
-124 часа
-97 дней
-930 дней
Архив постов
1 205
Repost from Azim Pulat
Sun'iy Intellekt Dasturchilarni Ishsiz Qoldiradimi?
Hozirgacha ChatGPTning kod yozish mahoratini ko'rgan bo'lsangiz kerak.
O'zidan so'rab ko'rsam, havotirga o'rin yo'q dedi. Ko'ngil xotirjamligi uchun, keling chuqurroq mulohaza qilamiz.
⏰ 24-dekabr, soat 19:00da
🎙️ @lazyprogrammer jonli suhbat
1 205
Number.MIN_VALUE > 0 === true ?
JavaScript’ni yomon ko’rish uchun mana yana bitta sabab. Ma’lum bo’lishicha,
Number.MIN_VALUE noldan katta eng kichik son ekan. Judayam chalg’ituvchi nom.
Agar sizga eng kichik butun son kerak bo’lsa Number.MIN_SAFE_INTEGER ni ishlating.1 205
❗️DISCLAIMER ❗️
Tepagi post orqali endi hamma for-loop larni refaktor qilib chiqinglar, bo'lmasa dasturlaringiz qotib qoladi, demoqchi emasman. Tezlik deganda nisbiy tezlik nazarda tutilgan. Farq nanosekundlarda. Umuman dasturinguz qanchalik tez ishlashi ko'pincha bunday faktorlarga aloqador bo'lmaydi. Agar tezlik siz uchun muhim bo'lsa, JavaScript'dan boshqa tilni ishlatishni maslahat beraman.
1 205
“Let” o’zgaruvchi “For-loop”ni sekinlashtiradi
Kechagi mavzuni davom ettiradigan bo’lsak, for-loop ifodaviy qismlarining barchasida leksik maydon hosil qilish mumkinligini aytgandim. Agar for-loop uchun iterativ o’zgaruvchini “let” orqali e’lon qilsak, har bir iteratsiyada alohida leksik maydon hosil bo’ladi. Bu leksik maydonlar o’zidan oldigisi ham bog’langan bo’ladi. Chunki yangi leksik maydonga undan oldigisidagi o’zgaruvchi qiymatlari nusxalab ko’chiriladi. Endi tassavur qiling ichma-ich yozilgan katta for-loop’lar “let” bilan ishlasa qanday gigant “lexical scope graph” hosil qiladi.
Agar JS engine’lar bu holatda shuncha ish qilyotgan bo’lsa, kodimiz tezligi tushib ketishi turgan gap. Bu bo’yicha V8 engine’da alohida raport qilingan. U yerdagi muhokamani o’qisangiz iloji boricha “for(;;)” strukturasini ishlatmaslik tavsiya qilingan. Albatta agar tezlik muhim bo’lsa. Uning o’rniga “for-of” yoki “for-in”lardan foydalanish nisbatan tezroq bo’lar ekan.
Agar “for(;;)”ni ishlatish chorasiz bo’lib qolsa, uni “var” bilan ishlatish ham kod tezligini oshiradi. Chunki bu holatda har bir iteratsiyada leksik maydonlar zanjiri hosil bo’lmaydi.
Benchmarking uchun kichik na’munaga link qoldiraman. Kodni bir necha marta yuritib ko’rsangiz, “var for-loop” nisbatan tezroq, “let for-loop” esa eng sekini ekaniligini ko’rasiz.
1 205
Lexical scopes in for-loop
For-loop strukturasi 4 ta asosiy ifodaviy qismlardan iborat:
for (ifoda1; ifoda2; ifoda3) {
ifoda4;
}
1-ifoda sikl boshida FAQAT BIR MARTA ishga tushadi. Bu yerda biz ko’pincha o’zgaruvchilar e’lon qilamiz, boshlag’ich holatni belgilaymiz.
2-ifoda har safar sikl boshida ishga tushadi. Bu yerga sikl tugatilish sharti qo’yiladi.
4-ifoda siklimiz tanasi. 2-ifodadan ROST qiymatini olar ekanmiz, 4-ifoda har doim bajariladi.
3-ifoda har safar sikl tugaganida ishga tushadi. Bu yerda sikl yakunlangaida qilinishi kerak bo’lgan amal(lar)ni joylaymiz.
JavaScript’da “lexical scope” tushunchasi mavjud. Qisqacha ma’nosi leksik maydon. Yuqoridagi for-loop strukturasidagi ifodalarning har biri o’z leksik maydonini yarata oladi.
Misolga qaraydigan bo’lsak, setTimeout 1-ifodaning “lexical scope”ida joylashgan. Ifda esa bir martagina ishga tushadi. O’zgaruvchi let orqali e’lon qilingani uchun “i”ning qiymati setTimeout uchun o’shaligicha qolaveradi.
1-ifoda ekvivalenti bunday bo’ladi:
let i = (setTimeout(()=>console.log(i)), 0);
// tushunarliroq qilib yozsak
{
let i = 0;
setTimeout(()=>console.log(i), 0);
}
Shunday ekan, for-loop’da bo’ladigan keyingi o’zgarishlarning setTimeout ichidagi “i”ga hech qanday tasiri yo’q. Chunki u alohida “lexical scope”da.
Javob: 01 205
Kodda chalg’ituvchi kichik narsa bor edi. Ko’pchilik bu sintaksisni bilmaydi. Agar qavs ichida qiymatlar vergul bilan ketma-ket yozilsa, faqat oxirgisi olinadi:
let i = (0,1,2,3); console.log(i); // 3Qavs ichida xohlagaqn ishingizni qilsangiz bo’ladi. Masalan setTimeout:
let i = (setTimeout(()=>alert()), 2); console.log(i); // 2Aytgancha setTimeout 2-parametrini berish shart emas. O’zi nol bo’lib ketadi:
setTimeout(()=>alert()); // bir xil setTimeout(()=>alert(), 0);
1 205
HTML tarixiga nazar solsak, bu til SGML tiliga asoslangan va takomillashtirilgan.
SGML (Standard Generalized Markup Language) 1980-yillarda "machine-readable" (mashina o'qiyoladigan) hujjatlar uchun ishlab chiqilgan.
SGML o'z navbatida GML tiliga asoslangan. GML (General Markup Language) 1960-yillarda IBM tominidan ishlab chiqilgan. Aniqrog'i Charles Goldfarb, Edward Mosher, va Raymond Lorie'lar uning ustida ishlagan.
GML qisqartmasi aslida General Markup Language emas, o'sha 3 ta dasturchi familiyalarining bosh harfidir:
Goldfarb Mosher Lorie
Respekt 👍
1 205
- Siz programmistmisiz?
- Yog'e, shunchaki havaskorman.
- Unda grammistmisiz?
- 😐
#kunhazili
1 205
Aytgancha Instagram va YouTube kanalimga har kuni Reels/Shorts yuklab boryapman.
Insta: https://instagram.com/brogrammistuz
YouTube: https://youtube.com/@brogrammistuz
1 205
Umuman olganda o'zi React'ni ishlatish ham SHART emas. Axir hammasini toza JavaScript'da yozishning iloji bo'lsa!
- degan ekan Afandi.
1 205
Qaysi JS framework/kutubxonalar bilan ishlaysiz? Agar "Boshqasi"ni tanlagan bo'lsangiz izohlarda qoldiring.
1 205
Yuqoridagi postni o'qishga eringanlar bo'lsa, oxiridagi xulosa bunday:
Shuni esda tutishingizni xohlagan bo'lardim: har doim yozgan kodingizga qarab, buni yaxshilash mumkinmi degan savolni o'zingizga berib ko'ring. Agar javob "ha" bo'lsa, uni qilish arzigulikmi degan savolni bering. Men ham shu savolni o'zimga berdim va "hozir arzimaydi" degan xulosaga keldim. Chunki muhim ishlar tuganda bunga vaqt ketkazgim kelmadi. Shuning uchun ham kodni refaktor qilganim yo'q.
#prioritization
1 205
JavaScript'da tuple'lar haqidagi gapimizni davom ettiradigan bo'lsak, ...
https://telegra.ph/Mana-shu-vaziyatda-JS-Tuple-juda-qol-kelardi-11-18
