Ruslan_xDD,
так трансляторы в помощь) |
Ruslan_xDD, в простом Object в качестве ключа может выступать только строка, а в Map или Set любое значение, включая объекты и это просто ну мега круто, юзаю уже больше года - не нарадуюсь.
Например, на сервере (в ноде), нужно добавлять авторизованных юзеров в специальную таблицу и иметь быстрый способ проверки: // WeakMap выбран потому, чтобы при разрыве соединения клиента с сервером, // оно автоматически удалилось бы и из map var map = new WeakMap(); createServer(function (req, res) { ... // req - это специальный объект-подключения юзера, экземпляр класс ReadStream var user = map.get(req); if (!user ) { map.set(req, { sessionId: ..., ... }); } }); Цитата:
Для фич вроде let или arrow function давно использую транслятор и сейчас абсолютно все мои разработки на ES6, а ES5 хочу забыть как страшный сон. https://github.com/6to5/6to5 *** Конечно, многие вещи можно было делать и в ES5/3, и кажется зачем учить новое если есть старое, но это не правильный подход, ибо ES6 позволяет делать вещи объективно лучше и проще, а чтобы понять "зачем эти фичи", то нужно просто начать их использовать и понимание придёт. |
kobezzza, это всё очень интересно, заюзаю как-нибудь, когда время придёт. :)
Слушай, а как трансляторы работают? Ведь если я напишу let в старом браузере, то это будет ошибка. Полагаю, трансляторы просто парсят скрипты, заменяя let на var и т.д.? А то я в этом пока не очень понимаю. :-? Или транслятор - это вообще не то, о чём я подумал? |
Ruslan_xDD,
а на вопрос отвечает Safort из команды знатоков ![]() Цитата:
|
Ruslan_xDD, как уже сказал выше Safort, то трансляторы парсят твой код, а затем преобразуют его в ES5/3. По такому же принципу работают TypeScript, CoffeeScript и т.д.
https://6to5.org/repl.html - тут можно поиграться, например, function foo() { var a = 1; if (a) { let a = 2; let b = () => this; } } Превратится в function foo() { var _this = this; var a = 1; if (a) { var _a = 2; var b = function () { return _this; }; } } |
Цитата:
... я уже перестал с нового года кофе пить так же... *глоток кофе* |
kobezzza, очень хочу поизучать CoffeeScript, но пока не очень понимаю, он только в Node.js? На клиенте можно? Если да, то как его подключать? А то гугл не даёт точных ответов, поэтому не могу вникнуть. :-?
|
Цитата:
1) Ты пишешь код на языке А; 2) Затем вызываешь транслятор и сохраняешь результат, который уже и используешь. Для автоматизациии процесса трансляции можно использовать FileWatcher-ы в IDE или системы сборки, например, Gulp или Grunt. http://www.youtube.com/watch?v=TspTo...ature=youtu.be - это видео я сделал для своего языка Snakeskin, но принцип одинаков для всех транслируемых языков. |
kobezzza, всё-таки значит я не так понимал, спасибо. :)
Я думал, что работает по такому принципу: В хейдере подключаем, допустим, coffee: <script src="CoffeeScript.js></script> Потом на странице где нибудь пишем скрипт: <script type="text/coffeescript"> код </script> И он на ходу парсится и эвалится в JS. Спасибо за разъяснения, теперь более-менее понятно, что такое трансляторы. :) |
Так как ты предлагаешь тоже можно, но сам понимаешь, что такой подход уж слишком избыточен и затратен, по этому этап трансляции обычно делают предварительно.
|
Часовой пояс GMT +3, время: 11:08. |