Skip to content

Latest commit

 

History

History
124 lines (74 loc) · 14.3 KB

File metadata and controls

124 lines (74 loc) · 14.3 KB

JavaScript'ке киришүү

Келгиле, JavaScript'тин өзгөчөлүгү эмнеде экенин, аны менен эмнеге жетише аларыбызды жана аны менен башка кандай технологиялар жакшы иштешин карап көрөлү.

JavaScript деген эмне?

JavaScript башында "веб-баракчаларды жандандыруу" үчүн түзүлгөн.

Бул тилдеги программалар скрипттер деп аталат. Алар HTML'де жазылат жана веб-баракча жүктөлгөн сайын автоматтык түрдө иштетилет.

Скрипттер жөнөкөй текст катары жайылат жана аткарылат. Аларды иштетүү үчүн атайын даярдыктын же компиляциянын кереги жок.

Бул жагынан JavaScript Java деп аталган башка тилинен абдан айырмаланат.

JavaScript түзүлүп жатканда "LiveScript" деп аталган. Бирок ошол убакта Java тили абдан таанымал болгондуктан, жаңы тилди Java'нын "иниси" катары жайгаштыруу пайдалуу болорун чечишкен.

Бирок ал өнүккөн сайын JavaScript [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript) деп аталган өзүнүн спецификациясы менен толук өз алдынча тилге айланды, жана азыр анын Java менен эч кандай байланышы жок.

Бүгүн JavaScript браузерде гана эмес, ошондой эле серверде же JavaScript кыймылдаткычы деген атайын программасы бар ар кандай түзмөктө иштейт.

Браузерде кээде "JavaScript виртуалдык машинеси" деп аталган ага орнотулган кыймылдаткычы бар.

Ар кандай кыймылдаткычтардын ар кандай "коддук аттары" бар. Мисалы:

  • V8 -- Chrome, Opera жана Edge'де.
  • SpiderMonkey -- Firefox'то.
  • ...IE үчүн "Chakra" жана Safari үчүн "JavaScriptCore", "Nitro", "SquirrelFish" ж.б. код аттары бар.

Жогорудагы аталыштарды эске тутсаңыз жакшы болот, анткени алар иштеп чыгуучулардын макалаларында көп колдонулат. Биз аларды да колдонобуз. Мисалы, "X функционалдуулугу V8 тарабынан колдоого алынса", анда ал Chrome, Opera жана Edge браузерлеринде да иштеши ыктымал.


Кыймылдаткычтар - татаал нерселер. Бирок негиздери оңой.

1. Кыймылдаткыч (эгер ал браузер болсо - камтылган) скриптти окуйт ("талдайт").
2. Кийин ал скриптти машине тилине айлантат ("компиляциялайт").
3. Андан кийин машине коду иштетилет, жана абдан тез иштейт.

Кыймылдаткыч ар бир этапта оптималдаштырууну колдонот. Жадагалса ал компиляцияланган скриптти иштеп жатканда карап, ал аркылуу өткөн маалыматтарды талдап, алган билиминин негизинде машине кодуна оптималдаштырууларды колдонот. Натыйжада, скрипттер абдан тез иштейт.

JavaScript браузерде эмне кыла алат?

Заманбап JavaScript - бул "коопсуз" программалоо тили. Ал эстутумга же процессорго төмөнкү деңгээлдик кирүүгө мүмкүнчүлүгүн бербейт, анткени JavaScript башында аны талап кылбаган браузерлер үчүн түзүлгөн.

JavaScript'тин мүмкүнчүлүктөрү ал иштеген чөйрөгө өтө көз каранды. Мисалы, Node.js ыктыярдуу файлдарды окууга/жазууга, тармак сурамдарын аткарууга ж.б. функцияларды колдойт.

Браузердеги JavaScript веб-баракчаны башкарууга, колдонуучу менен өз ара аракеттешүүгө жана веб-серверге байланыштуу бардык нерселерди жасай алат.

Мисалы:

  • Баракчага жаңы HTML-код кошуу, учурдагы мазмунду, стилдерди өзгөртүү.
  • Колдонуучунун аракетине, чычкандын чыкылдатканына, көрсөткүчтүн кыймылына, баскычтын басуусуна карап кыймыл-аракет жасоо.
  • Тармак аркылуу алыскы серверлерге сурамдарды жөнөтүү, файлдарды жүктөп алуу жана жүктөө (AJAX жана COMET технологиялары).
  • Кукилерди алуу жана орнотуу, келүүчүгө суроолорду берүү, билдирүүлөрдү көрсөтүү.
  • Кардар тараптагы маалыматты эстеп калуу ("local storage").

Браузердеги JavaScript эмне кыла АЛБАЙТ?

JavaScript'тин браузердеги мүмкүнчүлүктөрү колдонуучунун коопсуздугун коргоо үчүн чектелген. Бул чектөөнүн максаты - жаман веб-баракчанын колдонуучунун жеке маалыматына кирүүсүнө же анын маалыматтарына зыян келтирүүгө жол бербөө.

Мындай чектөөлөрдүн мисалдары:

  • Веб-баракчадагы JavaScript катуу дисктеги каалаган файлдарды окуй/жаза албайт, аларды көчүрө албайт же андагы программаларды аткара албайт. Браузердеги JavaScript'тин OS функцияларына түз кирүү мүмкүнчүлүгү жок.

    Заманбап браузерлер ага файлдар менен иштөөгө мүмкүндүк берет, бирок кирүү мүмкүнчүлүгү чектелген жана колдонуучу файлды браузердин терезесине "таштоо" же <input> теги аркылуу тандоо сыяктуу аракеттерди жасаганда гана берилет.

    Камера/микрофон жана башка түзмөктөр менен иштешүүнүн жолдору бар, бирок алар колдонуучунун ачык уруксатын талап кылат. Ошентип, JavaScript иштетилген баракча веб-камераны тымызын иштетип, айлананы байкап, маалыматты УКМКга жөнөтө албайт.

  • Ар түрдүү терезелер/салмалар бири-бири жөнүндө билишпейт. Кээде, мисалы, бир терезе экинчисин ачуу үчүн JavaScript колдонулат. Бирок бул учурда да, бир баракчадан JavaScript башка сайттардан (башка доменден, протоколдон же порттон) келсе, башкасына кол жеткизе албайт.

    Бул нерсе "Бирдей булак саясаты" (Same Origin Policy) деп аталат. Бул чектөөдөн өтүү үчүн, эки баракча тең буга макул болушу керек жана берилмелерди атайын жол менен алмашкан JavaScript кодун камтышы керек.

    Бул чектөө, дагы бир жолу, колдонуучунун коопсуздугу үчүн кажет. Колдонуучу ачкан https://anysite.com баракчасы https://gmail.com URL дареги бар башка браузер салмасына кире албашы керек жана ал жерден маалыматты уурдай албашы керек.

  • JavaScript учурдагы баракча келген серверге желе аркылуу оңой байланыша алат. Бирок анын башка сайттардан/домендерден маалыматтарды алуу жөндөмдүүлүгү чектелген. Негизи бул мүмкүн болсо да, ал алыскы тарап менен ачык макулдукту (HTTP баштарында көрсөтүлгөн) талап кылат. Дагы деле, бул коопсуздук чектөөсү.

Эгерде JavaScript браузерден тышкары, мисалы серверде колдонулса, мындай чектөөлөр таасир этпейт. Заманбап браузерлер кошумча уруксаттарды талап кылуу үчүн плагиндер/кеңейтмелер менен камсыз кылат.

JavaScript'ти өзгөчө кылган эмне?

Javascript тууралуу кеминде үч сонун нерсе бар:

+ HTML/CSS менен толук интеграция бар.
+ Жөнөкөй нерселер жөнөкөй жасалат.
+ Бардык негизги браузерлерден колдоого алынат жана демейки боюнча иштетилген.

JavaScript - бул үч нерсени бириктирген жалгыз браузер технологиясы.

Алар JavaScript'ти өзгөчө кылат. Ошондуктан бул браузер интерфейстерин түзүүнүн эң кеңири таралган куралы.

Айтор, JavaScript серверлерди, мобилдик тиркемелерди ж.б. түзүү үчүн колдонулат.

JavaScript'тен "жогору" тилдери

JavaScript'тин синтаксиси бардык муктаждыктарга ылайыктуу эмес. Ар кандай адамдар ар кандай өзгөчөлүктөрдү каалайт.

Бул абдан кадимки көрүнүш, анткени долбоорлор жана талаптар ар ким үчүн ар кандай.

Ошентип, жакында эле браузерде иштетиле электе JavaScript'ке транспиляцияланган (айландырылган) көптөгөн жаңы тилдер пайда болду.

Заманбап куралдар транспиляцияны абдан ылдам жана мөлтүр кылып, иштеп чыгуучуларга башка тилде код жазууга мүмкүндүк берет жана аны "капкактын астында" автоматтык түрдө которот.

Мындай тилдердин мисалдары:

  • CoffeeScript - бул JavaScript үчүн "синтаксистик кант". Ал кыскараак синтаксисти киргизип, түшүнүктүү жана так код жазууга мүмкүндүк берет. Адатта, Ruby иштеп чыгуучуларына жактырат.
  • TypeScript татаал тутумдарды иштеп чыгууну жана колдоону женилдетүү үчүн "так типтештирүүнү" кошууга багытталган. Microsoft'тон иштелип чыккан.
  • Flow да типтештирүүнү кошот, бирок башкача. Facebook'тан иштелип чыккан.
  • Dart браузерден тышкары (мисалы, мобилдик тиркемелерде) иштеген өзүнүн кыймылдаткычы бар болгондуктан өзгөчөлөнүп турат. Google'дан иштелип чыккан.
  • Brython Python'ду JavaScript'ке транспиляциялайт, ал тиркемелерди JavaScript'сиз таза Python тилинде жазууга мүмкүндүк берет.
  • Kotlin - браузерге же түйүнгө багытталган заманбап, кыскартылган жана коопсуз программалоо тили.

Башкалар да бар. Албетте, биз бул тилдердин бирин колдонсок дагы, эмне кылып жатканыбызды чындап түшүнүү үчүн JavaScript'ти билишибиз керек.

Корутунду

  • JavaScript башында браузер үчүн гана түзүлгөн, бирок азыр ал көптөгөн башка чөйрөлөрдө колдонулат.
  • Бүгүн JavaScript HTML/CSS менен толук интеграцияланган эң кеңири таралган браузер тили катары өзгөчө орунга ээ.
  • JavaScript'ке "которулган" жана кошумча функцияларды камсыз кылган көптөгөн тилдер бар. JavaScript'ти өздөштүргөндөн кийин, жок дегенде аларды кыскача карап чыгуу сунушталат.