2013-07-17 2 views
3

Я изо всех сил пытаюсь изучить все аспекты JavaScript и недавно узнал о том, что ECMAScript 6 находится на пути ... кажется, все более и более тривиально изучать вещи, которые скоро изменятся и будут на пороге. Я не знаю, стоит ли погрузиться в сложные детали ECMAScript5, когда выйдет новая версия. Как я должен подготовиться к программированию для ECMAScript 6 и в более общем плане, как мне подготовиться к развивающимся языкам?Как подготовиться к языковым изменениям?

+0

Я не уверен в многих изменениях * в ES6, так как есть * новые функции *. Возможно, я ошибаюсь – Ian

+3

ES 6 будет (должен) быть обратно совместимым, поэтому детали существующих функций не изменятся. Imho, это стоит понять их, даже если они будут сформулированы по-другому в следующей версии. При чтении черновика они скорее кажутся более сложными, чем многие из них :-) – Bergi

+0

ES6 должен быть обратно совместим с ES5, иначе мир закончится, поэтому вам не придется беспокоиться. –

ответ

2

Javascript в контексте Интернета (если это то, что вы говорите) очень разные звери.

Вам необходимо понять отклонения и ограничения двигателя.

Embrace изящная деградация.

Некоторые двигатели используют ES3. Другие полностью заменили ES3 совместимость с ES5. Некоторые даже начинают медленно добавлять функции ES6. И в довершение всего, некоторые браузеры также имеют нестандартные дополнения, которые не являются частью ES3, ES5 или ES6.

Вы должны иметь дело со всем, что :)

Хорошая вещь в том, что большой кусок языка остается неизменным. Даже когда новые функции внедряются в некоторых браузерах, все еще есть след двигателей старшего поколения, которые обычно необходимо поддерживать.

Вы не можете ошибаться, изучая ES5 прямо сейчас; просто имейте в виду, что у старых браузеров нет некоторых новых функций.

Это ES5 compatibility table среди наиболее популярных браузеров.

И вот one for ES6.

Вы можете четко видеть текущее состояние дел.

Если вас интересуют нестандартные функции ES, take a look at this.

0

Различия обычно заметны только для пользователей, которые используют определенные функции, которые часто не используются на большинстве веб-сайтов.

Если вы изучаете JavaScript прямо сейчас, вы не будете потеряны каким-либо образом, когда выйдет ECMAScript6, единственное, что он сделает, это то, что будут новые функции, которые вы можете или не можете найти полезными для своих случаев использования, и которые вы можете использовать или нет.

Вкратце: не ограничивайте свое обучение, потому что выйдет новая версия, это никак не повлияет на вас.

EDIT: На самом деле, светлячок уже поддерживает некоторые функции от ECMAScript6:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla

2

Последняя глава, ES6 должен был выйти к концу этого года. Я скептически отношусь к тому, собирается ли это сделать крайний срок, но даже если это произойдет, все равно потребуется время, чтобы браузеры приняли его. И даже после того, как браузеру это потребуется, вам придется подождать, пока значительная часть пользователей не обновит свои браузеры, прежде чем вы сможете начать использовать ES6 в производстве.

Обратите внимание на прошлое: ES5 вышел в конце 2009 года.Хотя я использую ES5 в некоторых небольших побочных проектах уже около года, я получил , так как мы отказываемся от поддержки браузеров, которые его не поддерживают. Однако наши клиенты ограничены и более технологичны, чем население, и на многих рабочих местах ES3 по-прежнему остается стандартом.

Я предполагаю, что принятие ES6 в браузере займет примерно столько же времени, что означает, что в течение следующих 3-4 лет (по крайней мере) разработчики браузеров будут жить в мире ES5 (изменение будет тем быстрее для узла, хотя).

Кроме того, ничего не происходит от ES1-5. У браузеров есть жесткое правило: никакие новые версии JavaScript не могут быть обратно совместимы со старыми версиями. Комитет ECMAScript посвящен философии «1 JS», и более или менее цель состоит в том, что каждый фрагмент кода JS, написанный в 1995 году, будет запущен в 2015 году.

Таким образом, ES5 является более или менее простым подмножество ES6. Если вы сначала изучите ES5, вы сможете сохранить все эти знания в тактике и добавить к ним, когда начнете изучать ES6. Я бы очень рекомендовал, чтобы вы только начали получать хорошую основу в ES3/5, и только тогда, когда ваш интерес вызван, взгляните на то, что происходит в ES6.