Семейство языков программирования javascript

JavaScript

JavaScript® (часто просто JS) — это легковесный, интерпретируемый или JIT-компилируемый, объектно-ориентированный язык с функциями первого класса. Наиболее широкое применение находит как язык сценариев веб-страниц, но также используется и в других программных продуктах, например, node.js или Apache CouchDB. JavaScript это прототипно-ориентированный, мультипарадигменный язык с динамической типизацией, который поддерживает объектно-ориентированный, императивный и декларативный (например, функциональное программирование) стили программирования. Подробнее о JavaScript.

Эта часть сайта посвящена самому языку JavaScript, и она не затрагивает тонкостей, связанных с веб-страницами или окружением, в котором исполняется JavaScript. Информация об API, относящихся к веб-страницам, находится в разделах, посвящённых Веб-API и DOM (en-US) .

Стандартом языка JavaScript является ECMAScript. По состоянию на 2012 год, все современные браузеры полностью поддерживают ECMAScript 5.1. Старые версии браузеров поддерживают по крайней мере — ECMAScript 3. 17 июня 2015 года состоялся выпуск шестой версии ECMAScript. Эта версия официально называется ECMAScript 2015, которую чаще всего называют ECMAScript 2015 или просто ES2015. С недавнего времени стандарты ECMAScript выпускаются ежегодно. Эта документация относится к последней версии черновика, которой является ECMAScript 2018.

Не следует путать JavaScript c языком программирования Java. И «Java», и «JavaScript» являются торговыми марками или зарегистрированными торговыми марками Oracle в США и других странах. Однако, у обоих языков различный синтаксис, семантика и применение.

Читайте также:  Адаменко логическое программирование visual prolog

Учебные материалы

Научитесь программировать на JavaScript вместе с нашим руководством.

Для абсолютных новичков

Загляните в наш Учебный План, если вам хочется изучить JavaScript, но у вас нет опыта в JavaScript или программировании. Доступные разделы:

Отвечаем на такие вопросы, как «что такое JavaScript?», «как он выглядит?», «и что он может делать?», а также обсуждаем основные возможности JavaScript, такие, как переменные, строки, числа и массивы.

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

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

Обсуждение асинхронного JavaScript: почему это так важно, как эта возможность языка может использована для обработки потенциальных блокирующих операций, как, например получение данных с сервера.

Когда вы пишите клиент веб-сайтов или приложений на JavaScript, вы не далеко уйдёте без использования API – интерфейсов для взаимодействия с браузером и операционной системой, на которой запущен сайт, или даже для операций с данными, полученными от других веб-сайтов и сервисов. В этом цикле статей мы разбираемся, что такое API и как использовать некоторые самые распространённые API, которые вам встретятся при разработке.

Руководство по JavaScript

Более подробное руководство по языку программирования JavaScript, нацеленное на тех, кто уже имеет опыт программирования на JavaScript или на любом другом языке.

Средний уровень

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

Обзор для тех, кто думает, что знает JavaScript.

Обзор существующих структур данных в JavaScript.

JavaScript предоставляет три различных оператора сравнения значений: строгое равенство === , с приведением типов == и метод Object.is() .

Замыкания это сочетание функции и лексического окружения в котором она была определена.

Продвинутый уровень

Статья разъясняет бытующие заблуждения и недооцененность наследования, основанного на прототипах.

Строгий режим говорит о том, что вы не можете использовать какую-либо переменную до её объявления. Это ограниченный вариант ECMAScript 5, для более быстрой производительности и простой отладки.

Типизированные массивы предоставляют механизм для работы с необработанными двоичными данными в JavaScript.

Жизненный цикл памяти и сборка мусора в JavaScript.

В JavaScript есть модель параллелизма, основанная на «цикле событий».

Этот документ описывает интерфейс для использования XPath в JavaScript напрямую, внутри расширений и на веб-сайтах.

Справочник

Узнайте о поведении таких операторов в JavaScript, как instanceof , typeof , new , this , приоритете операторов и многом другом.

Узнайте о do-while , for-in , for-of , try-catch , let , var , const , if-else , switch и многих других выражениях и ключевых словах в JavaScript.

Узнайте, как работать с функциями в JavaScript, чтобы разрабатывать свои приложения.

Инструменты и дополнительные ресурсы

Полезные инструменты для написания и отладки вашего JavaScript кода.

JavaScript шеллы позволяют быстро проверять фрагменты JavaScript-кода.

Объединение усилий стало проще. Добавляя TogetherJS на вашу веб-страницу, ваши пользователи могут помочь другу-другу в реальном времени!

Вопросы по JavaScript на Stack Overflow.

Просмотрите историю возможностей JavaScript и их статус.

Редактируйте JavaScript, CSS, HTML и получайте живые результаты. Используйте экспериментальные ресурсы и взаимодействуйте с вашей командой онлайн.

Plunker — это онлайн-сообщество для создания, обмена и совместной работы над идеями, касающимися веб-разработки. Редактируйте ваши JavaScript, CSS, HTML файлы, смотрите результат их выполнения и организуйте их в файловую структуру.

JS Bin это инструмент с открытым исходным кодом для отладки и совместной разработки.

Codepen ещё одна платформа для совместной веб-разработки, дающие результат в реальном-времени.

StackBlitz — это «песочница»/инструмент отладки, где вы можете размещать полновесные приложения написанные на React, Angular, т др.

Found a content problem with this page?

This page was last modified on 7 нояб. 2022 г. by MDN contributors.

Your blueprint for a better internet.

Источник

Обзор JavaScript

Если HTML определяет структуру и контент веб-страницы, а CSS задаёт формат и внешний вид, то JavaScript добавляет интерактивность и создаёт богатые веб-приложения.

Однако, под общим термином «JavaScript», в контексте веб-браузера, понимаются несколько очень разных вещей. Одна из них — это базовый язык программирования (ECMAScript), а другая — коллекция Web APIs, включая DOM (Объектно-ориентированная модель документа).

JavaScript, базовый язык программирования (ECMAScript)

Базовый язык JavaScript стандартизирован комитетом ECMA TC-39 как язык программирования под названием ECMAScript.

Базовый язык также используется в не-браузерном окружении, например, в node.js.

Что попадает под понятие ECMAScript?

Кроме прочего, ECMAScript определяет:

  • Синтаксис языка (правила парсинга, ключевые слова, порядок выполнения, инициализацию объекта литерала. )
  • Механизм обработки ошибок (исключения, try/catch оператор,возможность создавать новые типы ошибок)
  • Типы данных (логические, числа, строки, функции, объекты. )
  • Глобальный объект. В браузерах глобальным объектом является window , но ECMAscript определяет только те APIs, которые не являются специфическими для браузера, как parseInt , parseFloat , decodeURI , encodeURI .
  • Механизм прототипного наследования
  • Встроенные объекты и функции (JSON, Math, Array.prototype методы, методы самоанализа объекта. )
  • Строгий режим

Браузерная поддержка

На октябрь 2016, текущие версии основы веб-браузеров включали ECMAScript 5.1 и ECMAScript 2015, но более старые версии (все ещё находящиеся в использовании) реализуют только ECMAScript 5.

Будущее

Главное 6-ое издание ECMAscript было официально одобрено и опубликовано как стандарт 17 июня 2015 года на собрании ECMA General Assembly. С тех пор выпуски ECMAscript публикуются на ежегодной основе.

API по интернационализации

Спецификация ECMAScript для API по интернационализации — дополнение к языковой спецификации ECMAScript, также стандартизированной Ecma TC39. API по интернационализации обеспечивает сопоставление (строковое сравнение), форматирование чисел, дат и времени для приложений на JavaScript, позволяя выбирать язык и проектировать функциональность в зависимости от нужд. Начальный стандарт был одобрен в декабре 2012; статус реализации в браузерах ведётся в документации Intl object (en-US) . Спецификация по интернационализации сейчас также утверждается на ежегодной основе, и браузеры постоянно улучшают её реализацию.

DOM APIs

WebIDL

Спецификация WebIDL является связующим звеном между технологиями DOM и ECMAScript.

Ядро DOM

Объектно-ориентированная модель документа (DOM) это кросс-платформенное, языково-независимое соглашение по представлению объектов и взаимодействию с ними в документах HTML, XHTML и XML. Объект в DOM-дереве может быть адресован и обработан с помощью своих методов. Ядро Объектно-ориентированной модели документа стандартизируется W3C и определяет языково-независимые интерфейсы, абстрагирующие HTML и XML документы как объекты, и механизмы для управления этой абстракцией. Кроме прочих вещей, опряденных в DOM, можно также найти:

  • Структуру документа, древовидную модель, и архитектуру событий DOM в ядре DOM: Node , Element , DocumentFragment , Document , DOMImplementation , Event , EventTarget , …
  • Менее строгое определение архитектуры событий DOM, также как и определённые события DOM.
  • Другие вещи, такие как DOM Traversal и DOM Range.

С точки зрения ECMAScript, объекты определённые в спецификации DOM называются объектами среды исполнения («host objects»).

HTML DOM

HTML, это язык разметки Web, который определён в терминах DOM/ is specified in terms of the DOM. Layered above the abstract concepts defined in DOM Core, HTML also defines the meaning of elements. The HTML DOM includes such things as the className property on HTML elements, or APIs such as document.body .

The HTML specification also defines restrictions on documents; for example, it requires all children of a ul element, which represents an unordered list, to be li elements, as those represent list items. In general, it also forbids using elements and attributes that aren’t defined in a standard.

Другие API, заслуживающие внимания

  • Функции setTimeout и setInterval впервые были определены в интерфейсе Window в стандарте HTML.
  • XMLHttpRequest позволяет отправлять асинхронные HTTP запросы.
  • Объектная модель CSS абстрагировать CSS-правила как объекты
  • WebWorkers обеспечивает выполнение параллельных вычислений.
  • WebSockets обеспечивает низкоуровневое двунаправленное соединение.
  • Canvas 2D Context это API для рисования с помощью элемента ..

Поддержка браузерами

Каждый разработчик сталкивавшийся с DOM понимает как там все безнадёжно. Реализация той иной функциональности может отличаться, а следовательно и поведение. Главной причиной этого послужило то, что само описание спецификации DOM, было недостаточно ясным и подробным для разработчиков браузеров. Кроме того разные производители браузеров добавили несовместимые функциональности в своих браузеры или функциональности перекрывающие друг друга (например модель событий в IE). В данный момент консорциум W3C и частично WHATWG пытаются описать детально поведение тех или иных функций, чтобы улучшить совместимость между браузерами. Следуя этой тенденции, можно надеяться что браузеры улучшат свои реализации основываясь на этих спецификациях.

Наиболее общий, но возможно не самый надёжный способ улучшить кроссбраузерную совместимость это воспользоваться библиотеками JavaScript. Эти библиотеки абстрагируют вас от особенностей реализации DOM в том или ином браузере, и гарантируют, что их API работает одинаково в разных браузерах. Наиболее распространённые из них это jQuery и prototype.

Found a content problem with this page?

This page was last modified on 7 нояб. 2022 г. by MDN contributors.

Источник

Оцените статью