JavaScript â динамиÑно ÑазвиваÑÑийÑÑ ÑзÑк пÑогÑаммиÑованиÑ. РегÑлÑÑно поÑвлÑÑÑÑÑ Ð¿ÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾ добавлении в JS новÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей, они анализиÑÑÑÑÑÑ, и, еÑли пÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð´Ð¾Ð±ÑÑÑÑÑÑ, Ñо опиÑÐ°Ð½Ð¸Ñ Ð½Ð¾Ð²ÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей ÑзÑка пеÑеноÑÑÑÑÑ Ð² ÑеÑновик https://tc39.github.io/ecma262/, а заÑем пÑбликÑÑÑÑÑ Ð² ÑпеÑиÑикаÑии.
РазÑабоÑÑики JavaScript-движков Ñами ÑеÑаÑÑ, какие пÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑеализовÑваÑÑ Ð² пеÑвÑÑ Ð¾ÑеÑедÑ. Ðни могÑÑ Ð·Ð°Ñанее добавиÑÑ Ð² бÑаÑзеÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ ÑÑнкÑий, коÑоÑÑе вÑÑ ÐµÑÑ Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² ÑеÑновике, и оÑложиÑÑ ÑазÑабоÑÐºÑ ÑÑнкÑий, коÑоÑÑе Ñже пеÑенеÑÐµÐ½Ñ Ð² ÑпеÑиÑикаÑиÑ, поÑÐ¾Ð¼Ñ ÑÑо они менее инÑеÑеÑÐ½Ñ ÑазÑабоÑÑикам или более ÑложнÑе в ÑеализаÑии.
Таким обÑазом, доволÑно ÑаÑÑо ÑеализÑеÑÑÑ ÑолÑко ÑаÑÑÑ ÑÑандаÑÑа.
Ðожно пÑовеÑиÑÑ ÑекÑÑее ÑоÑÑоÑние поддеÑжки ÑазлиÑнÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей JavaScript на ÑÑÑаниÑе https://compat-table.github.io/compat-table/es6/ (нам еÑÑ Ð¿ÑедÑÑÐ¾Ð¸Ñ Ð¸Ð·ÑÑиÑÑ Ð¼Ð½Ð¾Ð³Ð¾Ðµ из ÑÑого ÑпиÑка).
Babel
Ðогда Ð¼Ñ Ð¸ÑполÑзÑем ÑовÑеменнÑе возможноÑÑи JavaScript, некоÑоÑÑе движки могÑÑ Ð½Ðµ поддеÑживаÑÑ Ð¸Ñ . Ðак бÑло Ñказано вÑÑе, не везде ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ Ð²Ñе ÑÑнкÑии.
Ð ÑÑÑ Ð¿ÑÐ¸Ñ Ð¾Ð´Ð¸Ñ Ð½Ð° помоÑÑ Babel.
Babel â ÑÑо ÑÑанÑпилеÑ. Ðн пеÑепиÑÑÐ²Ð°ÐµÑ ÑовÑеменнÑй JavaScript-код в пÑедÑдÑÑий ÑÑандаÑÑ.
Ðа Ñамом деле, еÑÑÑ Ð´Ð²Ðµ ÑаÑÑи Babel:
-
Ðо-пеÑвÑÑ , ÑÑанÑпилеÑ, коÑоÑÑй пеÑепиÑÑÐ²Ð°ÐµÑ ÐºÐ¾Ð´. РазÑабоÑÑик запÑÑÐºÐ°ÐµÑ Babel на ÑвоÑм компÑÑÑеÑе. Ðн пеÑепиÑÑÐ²Ð°ÐµÑ ÐºÐ¾Ð´ в ÑÑаÑÑй ÑÑандаÑÑ. РпоÑле ÑÑого код оÑпÑавлÑеÑÑÑ Ð½Ð° ÑайÑ. СовÑеменнÑе ÑбоÑÑики пÑоекÑов, Ñакие как webpack или brunch, пÑедоÑÑавлÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð·Ð°Ð¿ÑÑкаÑÑ ÑÑанÑÐ¿Ð¸Ð»ÐµÑ Ð°Ð²ÑомаÑиÑеÑки поÑле каждого Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð°, ÑÑо позволÑÐµÑ ÑкономиÑÑ Ð²ÑемÑ.
-
Ðо-вÑоÑÑÑ , полиÑил.
ÐовÑе возможноÑÑи ÑзÑка могÑÑ Ð²ÐºÐ»ÑÑаÑÑ Ð²ÑÑÑоеннÑе ÑÑнкÑии и ÑинÑакÑиÑеÑкие конÑÑÑÑкÑии. ТÑанÑÐ¿Ð¸Ð»ÐµÑ Ð¿ÐµÑепиÑÑÐ²Ð°ÐµÑ ÐºÐ¾Ð´, пÑеобÑазовÑÐ²Ð°Ñ Ð½Ð¾Ð²Ñе ÑинÑакÑиÑеÑкие конÑÑÑÑкÑии в ÑÑаÑÑе. Ðо ÑÑо каÑаеÑÑÑ Ð½Ð¾Ð²ÑÑ Ð²ÑÑÑоеннÑÑ ÑÑнкÑий, нам нÑжно Ð¸Ñ ÐºÐ°Ðº-Ñо ÑеализоваÑÑ. JavaScript ÑвлÑеÑÑÑ Ð²ÑÑокодинамиÑнÑм ÑзÑком, ÑкÑипÑÑ Ð¼Ð¾Ð³ÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑ/изменÑÑÑ Ð»ÑбÑе ÑÑнкÑии, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ вели ÑÐµÐ±Ñ Ð² ÑооÑвеÑÑÑвии Ñ ÑовÑеменнÑм ÑÑандаÑÑом.
ТеÑмин «полиÑил» ознаÑаеÑ, ÑÑо ÑкÑÐ¸Ð¿Ñ Â«Ð·Ð°Ð¿Ð¾Ð»Ð½ÑеÑ» пÑÐ¾Ð±ÐµÐ»Ñ Ð¸ добавлÑÐµÑ ÑовÑеменнÑе ÑÑнкÑии.
ÐнÑеÑеÑное Ñ ÑанилиÑе полиÑилов:
- core js поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¼Ð½Ð¾Ð³Ð¾ ÑÑнкÑий, можно подклÑÑаÑÑ ÑолÑко нÑжнÑе.
Таким обÑазом, ÑÑÐ¾Ð±Ñ ÑовÑеменнÑе ÑÑнкÑии поддеÑживалиÑÑ Ð² ÑÑаÑÑÑ Ð´Ð²Ð¸Ð¶ÐºÐ°Ñ , нам надо ÑÑÑановиÑÑ ÑÑанÑÐ¿Ð¸Ð»ÐµÑ Ð¸ добавиÑÑ Ð¿Ð¾Ð»Ð¸Ñил.
ÐÑимеÑÑ Ð² ÑÑебнике
ÐолÑÑинÑÑво пÑимеÑов можно запÑÑÑиÑÑ Â«Ð½Ð° меÑÑе», как ÑÑоÑ:
alert('ÐажмиÑе ÐºÐ½Ð¾Ð¿ÐºÑ "Play" в кÑайнем пÑавом ÑглÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¿ÑÑÑиÑÑ Ð¿ÑимеÑ');
ÐÑимеÑÑ, в коÑоÑÑÑ Ð¸ÑполÑзÑÑÑÑÑ ÑовÑеменнÑе возможноÑÑи JS, бÑдÑÑ ÑабоÑаÑÑ, еÑли Ð²Ð°Ñ Ð±ÑаÑÐ·ÐµÑ Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑ.
Google Chrome обÑÑно поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑовÑеменнÑе ÑÑнкÑии, можно запÑÑкаÑÑ Ð½Ð¾Ð²ÐµÐ¹Ñие пÑимеÑÑ Ð±ÐµÐ· ÐºÐ°ÐºÐ¸Ñ -либо ÑÑанÑпилеÑов, но и дÑÑгие ÑовÑеменнÑе бÑаÑзеÑÑ Ñоже Ñ Ð¾ÑоÑо ÑабоÑаÑÑ.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)