<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Azamjon Abdullayev</title><subtitle>I'm Front-End Engineer </subtitle><author><name>Azamjon Abdullayev</name></author><id>https://teletype.in/atom/azamjonbro</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/azamjonbro?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@azamjonbro?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=azamjonbro"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/azamjonbro?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-06-08T13:01:01.121Z</updated><entry><id>azamjonbro:bqOZm4Ai-Kf</id><link rel="alternate" type="text/html" href="https://teletype.in/@azamjonbro/bqOZm4Ai-Kf?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=azamjonbro"></link><title>JavaScript asoslari</title><published>2025-04-15T21:42:47.871Z</published><updated>2025-04-15T21:42:47.871Z</updated><summary type="html">Hozirgi kunga kelib barcha browserlar uchun eng optimal (dynamic) til bolib qolgan js tarixi va uning ichiga birma bir kirib boramiz :)</summary><content type="html">
  &lt;p id=&quot;t70N&quot;&gt;Hozirgi kunga kelib barcha browserlar uchun eng optimal (dynamic) til bolib qolgan js tarixi va uning ichiga birma bir kirib boramiz :)&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;h3 id=&quot;xErj&quot;&gt;&lt;strong&gt;JavaScript (JS)&lt;/strong&gt; – bu:&lt;/h3&gt;
  &lt;ul id=&quot;7yeT&quot;&gt;
    &lt;li id=&quot;U0bE&quot;&gt;&lt;strong&gt;High-level&lt;/strong&gt; (yuqori darajadagi) dasturlash tili.&lt;/li&gt;
    &lt;li id=&quot;x3Hj&quot;&gt;&lt;strong&gt;Dinamik tipga ega&lt;/strong&gt; – &lt;code&gt;var a = 5;&lt;/code&gt; → &lt;code&gt;a&lt;/code&gt; har qanday turdagi qiymatga aylanishi mumkin.&lt;/li&gt;
    &lt;li id=&quot;g8Xp&quot;&gt;&lt;strong&gt;Interpreted&lt;/strong&gt; (tushuntiriluvchi) til — ammo zamonaviy brauzerlar uni &lt;strong&gt;JIT (Just-In-Time)&lt;/strong&gt; orqali kompilyatsiya qiladi.&lt;/li&gt;
    &lt;li id=&quot;CSES&quot;&gt;&lt;strong&gt;Single-threaded&lt;/strong&gt; – bitta ipda ishlaydi, lekin &lt;strong&gt;asinxronlikni&lt;/strong&gt; (callback, promise, async/await) qo‘llab-quvvatlaydi.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;GQqK&quot;&gt;&lt;strong&gt; JavaScript tarixi (pot-kapot tarixi) :&lt;/strong&gt;&lt;/h2&gt;
  &lt;h3 id=&quot;rJZm&quot;&gt; 1995 – Brendan Eich Netscape brauzeri uchun 10 kunda JS&amp;#x27;ni yaratdi.&lt;/h3&gt;
  &lt;ul id=&quot;2u7t&quot;&gt;
    &lt;li id=&quot;dj4Q&quot;&gt;Dastlab nomi &lt;strong&gt;Mocha&lt;/strong&gt;, keyin &lt;strong&gt;LiveScript&lt;/strong&gt;, so‘ngra &lt;strong&gt;JavaScript&lt;/strong&gt; bo‘ldi (Java’ga hech aloqasi yo‘q – bu marketing uchun bo‘lgan).&lt;/li&gt;
    &lt;li id=&quot;xGJx&quot;&gt;Internetning interaktiv bo‘lishi uchun yaratilgan.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;teoL&quot;&gt; 1997 – JS standarti &lt;strong&gt;ECMAScript&lt;/strong&gt; (ES) nomi ostida paydo bo‘ldi.&lt;/h3&gt;
  &lt;ul id=&quot;aWCT&quot;&gt;
    &lt;li id=&quot;PN9S&quot;&gt;ES3 – 1999&lt;/li&gt;
    &lt;li id=&quot;gsLJ&quot;&gt;ES5 – 2009 (strict mode)&lt;/li&gt;
    &lt;li id=&quot;JZDN&quot;&gt;ES6 / ES2015 – 2015 (let/const, arrow functions, classes, promises, modules)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;Nyiq&quot;&gt; Hozirgi JS:&lt;/h3&gt;
  &lt;ul id=&quot;dD1U&quot;&gt;
    &lt;li id=&quot;jIPK&quot;&gt;&lt;strong&gt;Node.js&lt;/strong&gt; orqali serverda ishlaydi.&lt;/li&gt;
    &lt;li id=&quot;wYU3&quot;&gt;&lt;strong&gt;Electron, React Native&lt;/strong&gt; orqali desktop va mobil ilovalar yaratiladi.&lt;/li&gt;
    &lt;li id=&quot;2o7W&quot;&gt;&lt;strong&gt;Typescript&lt;/strong&gt; – JS ustiga typed qatlam.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;bqCP&quot;&gt;&lt;strong&gt;JS qanday ishlaydi?&lt;/strong&gt;&lt;/h2&gt;
  &lt;h3 id=&quot;rSJu&quot;&gt; &lt;strong&gt;High-level&lt;/strong&gt; tilda yozilgan kod &lt;strong&gt;brauzer yoki Node.js&lt;/strong&gt; orqali quyidagicha ishlaydi:&lt;/h3&gt;
  &lt;ol id=&quot;aHqt&quot;&gt;
    &lt;li id=&quot;zApi&quot;&gt;&lt;strong&gt;Parsing&lt;/strong&gt;: Kodni AST (Abstract Syntax Tree) ga aylantiradi.&lt;/li&gt;
    &lt;li id=&quot;3YEN&quot;&gt;&lt;strong&gt;Compilation&lt;/strong&gt;: V8 (Google) yoki boshqa engine uni &lt;strong&gt;JIT&lt;/strong&gt; (Just-in-time) orqali mashina kodga o‘giradi.&lt;/li&gt;
    &lt;li id=&quot;vtSU&quot;&gt;&lt;strong&gt;Execution&lt;/strong&gt;: Mashina kodi ishlaydi.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h3 id=&quot;pTa4&quot;&gt; JS Engine misol:&lt;/h3&gt;
  &lt;ul id=&quot;MnNd&quot;&gt;
    &lt;li id=&quot;8gaP&quot;&gt;Chrome: &lt;strong&gt;V8&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;OBPv&quot;&gt;Firefox: &lt;strong&gt;SpiderMonkey&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;wxu2&quot;&gt;Safari: &lt;strong&gt;JavaScriptCore&lt;/strong&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;cY7s&quot;&gt;&lt;strong&gt;Compilation va Interpretation&lt;/strong&gt;&lt;/h2&gt;
  &lt;ul id=&quot;ZQVY&quot;&gt;
    &lt;li id=&quot;4np1&quot;&gt;&lt;strong&gt;Compiler&lt;/strong&gt; – butun kodni oldindan mashina tiliga aylantiradi.&lt;/li&gt;
    &lt;li id=&quot;WQj2&quot;&gt;&lt;strong&gt;Interpreter&lt;/strong&gt; – kodni qatorma-qator bajaradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;MLBe&quot;&gt;&lt;strong&gt;JS&lt;/strong&gt;:&lt;/p&gt;
  &lt;ul id=&quot;CrvX&quot;&gt;
    &lt;li id=&quot;jPAM&quot;&gt;Ilgari faqat &lt;strong&gt;interpreter&lt;/strong&gt; edi.&lt;/li&gt;
    &lt;li id=&quot;zpCM&quot;&gt;Hozir &lt;strong&gt;V8 engine&lt;/strong&gt; orqali &lt;strong&gt;JIT compiler&lt;/strong&gt; ishlaydi:&lt;/li&gt;
    &lt;ul id=&quot;5Tsp&quot;&gt;
      &lt;li id=&quot;mr6D&quot;&gt;Tez-tez ishlatiladigan kodni mashina kodga aylantiradi va kechiktirmasdan bajaradi.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;WZmJ&quot;&gt;&lt;strong&gt;Event Loop, Call Stack, Microtask vs Macrotask&lt;/strong&gt;&lt;/h2&gt;
  &lt;h3 id=&quot;myqQ&quot;&gt; &lt;strong&gt;Call Stack&lt;/strong&gt;:&lt;/h3&gt;
  &lt;ul id=&quot;x3ns&quot;&gt;
    &lt;li id=&quot;cu3P&quot;&gt;Har bir funksiyaning bajarilishi bu yerga qo‘shiladi va bajarilgach chiqariladi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;DH15&quot;&gt; &lt;strong&gt;Event Loop&lt;/strong&gt;:&lt;/h3&gt;
  &lt;ul id=&quot;LAKa&quot;&gt;
    &lt;li id=&quot;56UN&quot;&gt;&lt;code&gt;Call Stack&lt;/code&gt; bo‘sh bo‘lsa, &lt;code&gt;Task Queue&lt;/code&gt;dan ish olib kiradi.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;GlLj&quot;&gt; &lt;strong&gt;Macrotask Queue&lt;/strong&gt;:&lt;/h3&gt;
  &lt;ul id=&quot;mNrn&quot;&gt;
    &lt;li id=&quot;whC0&quot;&gt;setTimeout&lt;/li&gt;
    &lt;li id=&quot;omI4&quot;&gt;setInterval&lt;/li&gt;
    &lt;li id=&quot;Q59k&quot;&gt;setImmediate (Node.js)&lt;/li&gt;
    &lt;li id=&quot;g45H&quot;&gt;I/O callbacks&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;TOzi&quot;&gt; &lt;strong&gt;Microtask Queue&lt;/strong&gt;:&lt;/h3&gt;
  &lt;ul id=&quot;JIfk&quot;&gt;
    &lt;li id=&quot;5Vtn&quot;&gt;Promises (&lt;code&gt;.then&lt;/code&gt;, &lt;code&gt;async/await&lt;/code&gt;)&lt;/li&gt;
    &lt;li id=&quot;H0nI&quot;&gt;MutationObserver&lt;/li&gt;
    &lt;li id=&quot;WCnL&quot;&gt;QueueMicrotask&lt;/li&gt;
  &lt;/ul&gt;
  &lt;blockquote id=&quot;joXT&quot;&gt;&lt;strong&gt;Microtasks&lt;/strong&gt; har doim &lt;strong&gt;Macrotasks&lt;/strong&gt;dan oldin bajariladi.&lt;/blockquote&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;k56G&quot; data-lang=&quot;jsx&quot;&gt;console.log(&amp;#x27;1&amp;#x27;);&lt;/pre&gt;
    &lt;pre id=&quot;HIgq&quot; data-lang=&quot;jsx&quot;&gt;setTimeout(() =&amp;gt; {
  console.log(&amp;#x27;2&amp;#x27;);
}, 0);&lt;/pre&gt;
    &lt;pre id=&quot;TjMZ&quot; data-lang=&quot;jsx&quot;&gt;Promise.resolve().then(() =&amp;gt; {
  console.log(&amp;#x27;3&amp;#x27;);
});&lt;/pre&gt;
    &lt;pre id=&quot;olaz&quot; data-lang=&quot;jsx&quot;&gt;console.log(&amp;#x27;4&amp;#x27;);
&lt;/pre&gt;
  &lt;/section&gt;
  &lt;pre id=&quot;D7K2&quot; data-lang=&quot;jsx&quot;&gt;
1
4
3  &amp;lt;— microtask
2  &amp;lt;— macrotask
&lt;/pre&gt;
  &lt;h2 id=&quot;bpWE&quot;&gt;Xulosa&lt;/h2&gt;
  &lt;p id=&quot;vmLg&quot;&gt;JS:&lt;/p&gt;
  &lt;ul id=&quot;q6zf&quot;&gt;
    &lt;li id=&quot;ISwD&quot;&gt;High-level, dynamic, interpreted → hozirda JIT compiled.&lt;/li&gt;
    &lt;li id=&quot;sUZg&quot;&gt;Single-threaded lekin event loop yordamida asinxron.&lt;/li&gt;
    &lt;li id=&quot;lBl5&quot;&gt;Tarixan brauzerlar uchun yaratilgan, hozir esa universal tilga aylangan.&lt;/li&gt;
    &lt;li id=&quot;UjU6&quot;&gt;Microtask &amp;amp; Macrotask tizimi orqali noaniq kechikishlarni boshqaradi.&lt;/li&gt;
  &lt;/ul&gt;

</content></entry></feed>