JavaScript

Vaqt o'tishi bilan JavaScript ning rivojlanishi

Asl maqolaga “ushbu sahifadan” kirishingiz mumkin.

1.1 Boshlanishi

JS Historical Development ikki bo'limga bo'lingan.

  • Birinchidan, **Brauzer davri bo'lgan, o'shanda JavaScript brauzerlarda mavjud bo'lishga harakat qilgan.
  • Ikkinchi: EcmaScript 5 dan keyingi ES6, ES7, ES8, ES9, ES10, ES11, ES12 davrlari, JavaScript-ni Node.JS bilan brauzerlardan tashqari, serverlar va ish stollarida ishlash mumkin edi.

1.2 Brauzerlar davri

Brenden Eich: JavaScript dasturlash tilini yaratuvchisidir. U uni 1995 yilda Netscape, ya'ni hozirgi Mozilla'da ishlagan vaqtida ishlab chiqqan. Vaqt o'tishi bilan uning ismi Mocha LiveScript JavaScriptga o'zgartirildi.

Doug Crockford: JSON (JavaScript Object Notation) 2002-yilda yaratilgan. XML-ning quyi to'plami bo'lgan ushbu format JavaScript-ni tilda to'g'ridan-to'g'ri qo'llab-quvvatlash va server bilan ishlash uchun asos bo'lib xizmat qiladi.

Jessi Jeyms Garret:2005 yilgi maqolada Ayaksga ta'rif bergan. Veb-ilovaning asosiy aloqa texnikasi server bilan asinxron aloqa edi.

Jon Resig: 2006 yilda u JQuery kutubxonasini yaratdi. Bular ishlab chiquvchilarga Prototype, Dojo va Mootools kabi kutubxonalar tomonidan ommalashgan har qanday brauzer nomuvofiqliklarini bartaraf etadigan abstraksiyani taqdim etgan kutubxonalar edi.

HTML5: Flash tugamoqda. JavaScript-ning yana bir yutug'i Stiv Jobs va Mark Tsukerberg kabi texnologiya ishlab chiquvchilari Flash qurilmalarini brauzerlarda qo'llab-quvvatlamasliklarini va kelajak HTML5, CSS3 va JavaScript-da ekanligini ta'kidlaganlarida yuz berdi.

Ushbu tendentsiyaning boshlanishi bilan brauzerlarda ishlaydigan barcha plaginlar yo'qoldi. Java-ning Applet va JavaFX, Adobe Flash va Microsoft Silverlight hammasi yo'q bo'lib ketdi.

1.3. ES davri (ES5, ES6, ES7, ES8, ES9, ES10, ES11, ES12)

NodeJS2009 yilda Rayan Dahl tomonidan yaratilgan. Chrome-ning JavaScript kompilyatorini ochish orqali yaratilgan ushbu infratuzilma JS-ga server sifatida, ya'ni brauzerdan tashqarida ishlash imkonini beradi. Va bundan buyon JS hamma joyda yugura boshladi. U hamma joyda paydo bo'la boshladi, endi uni paydo bo'lgan brauzerga mos kelmadi va qo'mita cheksiz o'sishni boshladi. Talablar farqlana boshladi. Bu farq bilan til evolyutsion tarzda qayta tiklana boshladi.

EcmaScript (ES): JavaScript uchun asosiy standart. Brauzerga asoslangan til sifatida yaratilganidan beri ushbu standart Flash-ning ActionScript-ni va Microsoft-ning JScript-ni o'z ichiga olgan. Ammo oxir-oqibat boshqa tillarning eng yaxshi xususiyatlari JavaScript-ga kiritildi va ular yo'qoldi.

TC39: ESni ishlab chiqish qoʻmitasi brauzer ishlab chiquvchilari va yirik internet bilan bogʻliq kompaniyalarning bir necha aʼzolaridan iborat.

Versiya: Har yili, odatda, iyun oyida ESning yangi nashri nashr etiladi va har yili avvalgi yilgi raqam ikki barobarga ko'paytiriladi. Masalan, 2015-yilda e’lon qilingan til xususiyatlari ES6, 2016-yilda nashr etilgan til xususiyatlari ES7 va 2019-yilda o‘rnatilgan til xususiyatlari ES10 deb nomlanadi. 2015-yilda chop etilgan JS tilidagi o'zgarishlar, ES6, juda boshqacha va tilni ilg'or edi.

Men quyida EcmaScript versiyalari asosida JS tilidagi ishlanmalarni kiritdim;

1.3.1 ES6 (2015)

  • let va const
  • Ok funksiyalari
  • Sinflar
  • Standart parametrlar
  • Shablon harflari
  • Topshiriqlarni yo'q qilish
  • Kengaytirilgan ob'ekt harflari
  • For-of Loop
  • Va'dalar
  • Spread operatori
  • Oʻrnatish/Xarita
  • Generatorlar

1.3.2 ES7 (2016)

  • Massiv.prototip.oʻz ichiga oladi
  • Ko'rsatkich operatori (**)
  • Array.prototype.find va Array.prototype.findIndex
  • Object.getOwnPropertyDescriptors

1.3.3 ES8 (2017)

  • String to'ldirish
  • Ob'ekt (qiymatlar, yozuvlar)
  • Sinxron funksiyalar
  • Umumiy xotira va atom

1.3.4 ES9 (2018)

  • Async iteration
  • Dam olish / yoyish
  • Va'da.prototip.nihoyat
  • Muntazam ifoda yaxshilanishlari

1.3.5 ES10 (2019)

  • Massiv (tekis, flatMap)
  • Ob'ekt (Entriesdan)
  • Ixtiyoriy tutib bog‘lash
  • String (trimStart, trimEnd)
  • Belgi (tavsif)
  • barqaror massiv (saralash)
  • Yaxshi shakllangan JSON (stringify)
  • Statik maydon

1.3.6. ES11 (2020)

  • BigInt
  • Dinamik import
  • Nully Coalescing
  • Ixtiyoriy zanjir
  • Promise.allSettled
  • String#matchAll
  • globalBu
  • Modul nom maydoni eksporti
  • Yaxshi belgilangan tartibda
  • import.meta
  • shaxsiy maydonlar (#)

1.3.7 ES12 (2021)

  • Raqamli ajratgichlar
  • String.prototype.replaceAll
  • Promise.any() va AggregateError
  • Mantiqiy tayinlash operatorlari
  • Xususiy sinf usullari va yordamchilari

1.3.7 ES13 (2022)

  • Yuqori darajadagi operatorni kuting
  • Sinf maydoni deklaratsiyasi
  • Xususiy usullar va sohalar
  • Statik sinf maydonlari va xususiy statik usullar
  • RegExp moslik indekslari
  • Ergonomik brend xususiy maydonlarni tekshiradi
  • Indekslash uchun .at() funktsiyasi
  • Vaqtinchalik funktsiya

Yuqorida aytib o'tgan misol ilovalari haqida ko'proq bilish uchun siz «elektron kitob pdfni yuklab olishingiz va o'qishingiz mumkin.