Задать вопрос
@McMike

Новые возможности javascript являются частью спецификации языка?

В общем это вопрос с целью устранения пробелов в моей голове. Никогда не любил фронтенд, но приходится иногда что-то писать и порой работа делается, а почему это работает непонятно.
К примеру, когда-то давно начинал изучать HTML. И, на сколько я тогда понимал, было все строго - у каждого тега был набор атрибутов, которые как-то обрабатывались. И вдруг потом стало возможным писать любые атрибуты в тегах и использовать их в js.
Это было обновление стандарта html-js или все это и раньше было доступно? Т.е. каким образом вдруг javascript стал уметь работать с тем, чего раньше не было? Это были новые возможности движка или это всегда было, но красиво реализовали только в jQuery?
То же самое сейчас с react. Что за jsx-синтаксис? Кто его парсит? Этого же нет в стандарте javascript? Могу только предположить, что jsx-скрипт распарсивается какой-то библиотекой написаной на стандартном javascript и транслирует в него же... Т.е. это уже несколько уровней интерпретации? Что происходит?
  • Вопрос задан
  • 298 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
что jsx-скрипт распарсивается какой-то библиотекой написаной на стандартном javascript и транслирует в него же...

Абсолютно верно. JSX превращается в обычные js-объекты.

На счет любых атрибутов - сказать точно не могу (angular / vue тоже же используют кастомные атрибуты, но я не знаком с тем, как обрабатываются шаблоны подобные), знаю лишь, что data-* валидны в HTML 5, а если вы про "атрибуты в jsx", то там да... любые, но это уже и не HTML.
Ответ написан
Комментировать
dummyman
@dummyman
диссидент-схизматик
что jsx-скрипт распарсивается какой-то библиотекой написаной на стандартном javascript и транслирует в него же...

А что вас так удивляет... Тут их целый зоопарк был еще до JSX: TypeScript, CoffeeScript, Angular, WebAssembly и все они из разных буферов данных формируют объекты Plain Old JavaScript Objects. Каждая либа считается по всем параметрам превосходит до безобразия жуткий JavaScript. Только вот друг с другом они не совместимы. Совместимы они только с JavaScript.
Чуть не забыл clojure
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы