JavaScript (не блытаць з Java) - гэта высокаўзроўневы, дынамічны, многопарадигменный, аб'ектна-арыентаваны, заснаваны на прататыпе, слаба тыпізаваных мова, які выкарыстоўваецца як для кліенцкіх, так і для серверных сцэнараў. Яго асноўнае выкарыстанне заключаецца ў рэндэрынгу і выкананні маніпуляцый з вэб-старонкамі. Выкарыстоўвайце гэты тэг для пытанняў, якія тычацца ECMAScript і яго розных дыялектаў / рэалізацый (выключаючы ActionScript і Google-Apps-Script).

JavaScript (дыялект ECMAScript) - гэта высокаўзроўневы, дынамічны, мультипарадигмальный, аб'ектна-арыентаваны, слаба тыпізаваных мову на аснове прататыпаў , традыцыйна які выкарыстоўваецца для стварэння сцэнарыяў на баку кліента ў вэб-браўзэрах. JavaScript таксама можа быць запушчаны за межамі браўзэра з выкарыстаннем такой інфраструктуры, як , , або . Нягледзячы на назву, ён не звязаны з мовай праграмавання Java і мае толькі знешняе падабенства.

JavaScript працуе практычна ва ўсіх аперацыйных сістэмах, а рухавічок уключаны ў асноўныя вэб-браўзэры. Распрацаваны ў 1995 годзе Брэнданам Айхом з Netscape Communications , ён першапачаткова называўся LiveScript, але быў перайменаваны ў JavaScript з-за сяброўскіх адносінаў Netscape з Sun Microsystems (стваральнікамі Java ) у той час.

Таксама даступныя аўтаномныя рухавічкі або інтэрпрэтатары JavaScript, у тым ліку:

  • Mozilla , першы рухавічок JavaScript, калі-небудзь напісаны, у цяперашні час выкарыстоўваецца ў Mozilla Firefox.
  • Google JavaScript рухавічок Chrome , які выкарыстоўваецца ў Google Chrome і Chromium.
  • , хмарны / серверны інтэрпрэтатар, які забяспечвае праграмны "макроподобный" кантроль над службамі і дакументамі Службаў Google.
  • , пабудаваны на аснове V8, платформы, якая дазваляе пісаць на боку сервера прыкладання на JavaScript.
  • Windows ўключае ў сябе , варыянт JavaScript у Windows Script Host .
  • , адгалінаванне ад JScript, распрацавана Microsoft і выкарыстоўваецца ў іх .
  • Mozilla таксама прапануе , рэалізацыю JavaScript, убудаваную ў Java, звычайна убудаваную ў дадатку Java для прадастаўлення сцэнарыяў канчатковым карыстачам.
  • (акрамя праекта Chromium) рэалізуе рухавічок .
  • (першапачаткова вытворны ад HyperTalk ) зараз з'яўляецца дыялектам ECMAScript і выкарыстоўвае мноства API-інтэрфейсаў ECMAScript.
  • Duktape Embeddable , партатыўны рухавічок ECMAScript на C з невялікім аб'ёмам памяці.
  • Wakanda , інтэграванае асяроддзе, IDE і сервер на базе V8, якія падтрымліваюць серверны JavaScript
  • MeteorJS ; дадатак Meteor ўяўляе сабой сумесь кліенцкага JavaScript, які запускаецца ўнутры вэб-браўзэра або мабільнага прыкладання , сервернага JavaScript, які выконваецца на сэрвэры Meteor ўнутры кантэйнера Node.js. (паводле дакументацыі MeteorJS )

Сетка распрацоўшчыкаў Mozilla ўтрымлівае высакаякасную дакументацыю па JavaScript .

JavaScript звычайна выкарыстоўваецца для кіравання аб'ектнай мадэллю дакумента (DOM) і каскаднымі табліцамі стыляў (CSS) у браўзэры. Гэта дазваляе ствараць сцэнары карыстацкага інтэрфейсу, анімацыю, аўтаматызацыю, праверку на баку кліента і многае іншае.

З нядаўнім з'яўленнем такіх платформаў, як Node.js , JavaScript зараз можна выкарыстоўваць для напісання серверных прыкладанняў. Акрамя таго, ён таксама выкарыстоўваецца ў асяроддзях, ня заснаваных на вэб-тэхналогіях, такіх як дакументы PDF, браўзэры для канкрэтных сайтаў, фішкі на працоўным стале і г.д.

намэнклятура

Хоць ён быў распрацаваны пад назвай Mocha, гэтая мова была афіцыйна названы LiveScript, калі ён упершыню быў выпушчаны ў бэта-версіях Netscape Navigator 2.0 у верасні 1995 года, але ён быў перайменаваны ў JavaScript, калі ён быў разгорнуты ў браўзэры Netscape версіі 2.0B3.

Змена назвы з LiveScript на JavaScript прыкладна супала з Netscape, дадаць падтрымку тэхналогіі Java у яго вэб-браўзэры Netscape Navigator. Канчатковы выбар імя выклікаў блытаніну, ствараючы ўражанне, што мова была пабочным прадуктам мовы праграмавання Java, і Netscape выбраў маркетынгавы выкрут для таго, каб даць JavaScript кэшаванне таго, што было тады гарачым, новым мова вэб-праграмавання.

Людзі часта выкарыстоўваюць тэрмін JavaScript нефармальна. Мова і тэрмін адбыліся ад Netscape . ECMAScript, JavaScript і JScript - гэта тэрміны, якія лёгка зблытаць.

ECMAScript быў распрацаваны як стандартызацыя Netscape JavaScript і Microsoft, незалежна распрацаванага JScript . Кананічным даведнікам з'яўляецца спецыфікацыя мовы ECMAScript® 2015 . Хоць JavaScript і JScript імкнуцца быць сумяшчальнымі з ECMAScript, яны таксама прадастаўляюць дадатковыя функцыі (і іншыя адхіленні ), ня апісаныя ў спецыфікацыях ECMA. Іншыя рэалізацыі ECMAScript таксама існуюць.

Сёння адрозненні для тых, хто выкарыстоўвае JavaScript, нікчэмныя; людзі звычайна не адрозніваюць варыянты JavaScript і JScript ад ECMAScript.

ECMAScript версіі

Большасць сучасных браўзэраў рэалізуюць JavaScript на аснове спецыфікацыі ECMAScript 6, хоць некаторыя не ў стане рэалізаваць некаторыя функцыі ES6. Аднак у старых браўзэрах, такіх як Internet Explorer 8, рэалізаваная спецыфікацыя ECMAScript 3, у якой, сярод іншага, адсутнічаюць функцыі, такія як Function.prototype.bind і нават JSON.parse .

Бягучая версія ECMAScript - гэта ECMAScript 9, вядомы як ECMAScript 2018, які быў завершаны ў чэрвені 2018 года.


Задаючы пытанне JavaScript, вы павінны:

  1. Отладьте ваш код JavaScript (гл. Creativebloq , MDN , Google і MSDN ).
  2. Ізалюе праблемны код і прайграйце яго ва фрагменце кода Stack Overflow або ў знешняй онлайн-асяроддзі, такі як JSFiddle , JS Bin або PasteBin (не забудзьцеся таксама ўключыць код у само пытанне).
  3. Калі выкарыстоўваецца бібліятэка або інфраструктура, пазначце пытанне адпаведнымі тэгамі: для jQuery, для прататыпа, для MooTools і г.д. Аднак, калі інфраструктура не выкарыстоўваецца ці не патрэбна, не ўключайце гэтыя тэгі.
  4. Калі праблема на баку кліента, пакажыце, у якім браўзэры ўзніклі праблемы з кодам, і якія паведамленні пра памылкі, калі такія маюцца, былі выдадзеныя браўзэрам. Выкарыстоўвайце Інструменты распрацоўніка для вашага браўзэра (гл. "Карысныя інструменты" ніжэй), каб убачыць гэтыя паведамленні. Калі пытанне звязаны з браўзэрам, выкарыстоўвайце тэгі ,