<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sib">
	<id>https://sibwiki.org/index.php?action=history&amp;feed=atom&amp;title=JavaScript</id>
	<title>JavaScript - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sibwiki.org/index.php?action=history&amp;feed=atom&amp;title=JavaScript"/>
	<link rel="alternate" type="text/html" href="https://sibwiki.org/index.php?title=JavaScript&amp;action=history"/>
	<updated>2026-05-31T13:13:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://sibwiki.org/index.php?title=JavaScript&amp;diff=85911&amp;oldid=prev</id>
		<title>Yaroslav: Bot: Automated import of articles</title>
		<link rel="alternate" type="text/html" href="https://sibwiki.org/index.php?title=JavaScript&amp;diff=85911&amp;oldid=prev"/>
		<updated>2026-05-30T21:54:30Z</updated>

		<summary type="html">&lt;p&gt;Bot: Automated import of articles&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторонка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{YouTube|gXLeB6Ndae4|width=300|height=250}}&lt;br /&gt;
&lt;br /&gt;
JavaScript — мультипарадигменный скриптовый язык программирования, преимущественно используемый в качестве встроенного инструмента для обеспечения интерактивности веб-страниц и управления объектами приложений в браузерах. Язык обладает динамической типизацией, автоматическим управлением памятью и объектно-ориентированной архитектурой, базирующейся на прототипах. Благодаря своей универсальности и повсеместной интеграции в современные веб-технологии, JavaScript является одним из самых востребованных языков в индустрии программного обеспечения.&lt;br /&gt;
&lt;br /&gt;
== История создания ==&lt;br /&gt;
Разработка языка была инициирована в 1995 году компанией Netscape Communications в период стремительного роста популярности глобальной сети Интернет и появления первых массовых браузеров. Первоначально инженеры компании планировали использовать для автоматизации веб-страниц язык Scheme (один из диалектов функционального языка Лисп). Однако, под влиянием растущей популярности скриптовых языков, таких как Python и Ruby, было принято решение о создании собственного специализированного и более простого инструмента.&lt;br /&gt;
&lt;br /&gt;
Главным разработчиком языка выступил Брендан Эйх, работавший при поддержке основателя Netscape Марка Андриссена. В процессе создания язык носил рабочие названия, такие как Mocha. В то же время компания Sun Microsystems активно продвигала свою платформу Java, создавая встраиваемые в веб-страницы Java-апплеты. Для обеспечения успешного маркетингового старта нового продукта компания Netscape пошла на стратегическое сотрудничество с Sun Microsystems (в лице Билла Джоя). 4 декабря 1995 года была получена лицензия на использование слова «Java» в названии нового языка, в результате чего он получил окончательное коммерческое имя — JavaScript. Данное решение вызвало длительную терминологическую путаницу в индустрии, поскольку концептуально и архитектурно JavaScript и Java являются совершенно разными языками программирования.&lt;br /&gt;
&lt;br /&gt;
Уже в 1996 году корпорация Microsoft разработала собственный аналог языка под названием JScript и интегрировала его в браузер Internet Explorer. Позднее Microsoft также пыталась продвигать язык VBScript (построенный на логике языка Basic), однако доминирующее положение в веб-разработке в итоге занял именно JavaScript.&lt;br /&gt;
&lt;br /&gt;
== Архитектура и парадигмы программирования ==&lt;br /&gt;
Несмотря на то, что внешний синтаксис JavaScript был стилизован под язык C (для упрощения процесса обучения начинающих программистов и веб-дизайнеров), его внутренняя логика во многом заимствована из функциональных языков программирования, в частности из Лиспа. &lt;br /&gt;
&lt;br /&gt;
Функции в JavaScript являются объектами первого класса, что позволяет передавать их в качестве аргументов, возвращать из других функций и присваивать переменным. Язык поддерживает механизмы анонимных функций и карринга. &lt;br /&gt;
&lt;br /&gt;
Отличия от классической модели Java фундаментальны:&lt;br /&gt;
Во-первых, JavaScript использует прототипное наследование вместо классического наследования на базе классов. Объекты могут создаваться напрямую и служить прототипами для других объектов.&lt;br /&gt;
Во-вторых, язык обладает динамической типизацией, где типы данных определяются автоматически в процессе выполнения программы.&lt;br /&gt;
В-третьих, код JavaScript интерпретируется напрямую из текстового файла браузером, тогда как Java требует предварительной компиляции в промежуточный байт-код.&lt;br /&gt;
&lt;br /&gt;
== Структура языка ==&lt;br /&gt;
Традиционно архитектура JavaScript в контексте веб-браузеров разделяется на три независимых компонента:&lt;br /&gt;
&lt;br /&gt;
Ядро языка (Core). Базовая спецификация, которая определяет синтаксис, типы данных, ключевые и зарезервированные слова, операторы, циклы, регулярные выражения и базовые объекты. Ядро не имеет встроенных механизмов ввода-вывода и стандартизировано под названием ECMAScript.&lt;br /&gt;
&lt;br /&gt;
Объектная модель браузера (BOM — Browser Object Model). Данный компонент описывает взаимодействие со средой браузера. Он управляет системными диалогами, адресной строкой, информацией о технических параметрах монитора пользователя, историей просмотров веб-страниц и фреймами. Каждое окно или вкладка браузера рассматривается как отдельный глобальный объект Window. Степень стандартизации BOM исторически ниже, чем у ядра языка.&lt;br /&gt;
&lt;br /&gt;
Объектная модель документа (DOM — Document Object Model). Компонент отвечает за представление HTML-документа в виде иерархического дерева объектов и узлов. Инструменты DOM позволяют языку динамически генерировать, изменять или удалять любые узлы документа, тем самым полностью трансформируя внешний вид и поведение веб-страницы в реальном времени.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис и интеграция ==&lt;br /&gt;
Существует три основных метода внедрения кода JavaScript в гипертекстовую разметку HTML:&lt;br /&gt;
&lt;br /&gt;
Использование специализированного внутреннего тега, внутри которого размещается исполняемый скрипт. Подобное смешивание разметки и программной логики часто подвергается критике при разработке крупных проектов.&lt;br /&gt;
&lt;br /&gt;
Использование обработчиков событий, интегрированных непосредственно в HTML-элементы. В данном подходе скрипт выполняется при наступлении определенного события (например, при клике мышью на кнопку или наведении курсора на изображение). &lt;br /&gt;
Концептуальный пример вызова функции подтверждения действия при нажатии:&lt;br /&gt;
 &amp;lt;button onclick=&amp;quot;confirm(&amp;#039;Уверены, что хотите удалить?&amp;#039;)&amp;quot;&amp;gt;Удалить&amp;lt;/button&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вынесение кода в отдельный внешний файл. Является стандартом профессиональной разработки. В HTML-документе указывается лишь ссылка на файл со скриптом и, при необходимости, его кодировка:&lt;br /&gt;
 &amp;lt;script src=&amp;quot;application.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сферы применения ==&lt;br /&gt;
Исторически JavaScript применялся исключительно для клиентской веб-разработки: валидации форм, создания анимаций и связывания мультимедийных элементов. Позднее появление технологии AJAX (и схожего механизма Comet) позволило обмениваться данными с веб-сервером в фоновом режиме без полной перезагрузки страницы, что многократно повысило скорость работы и функциональность веб-интерфейсов.&lt;br /&gt;
&lt;br /&gt;
В современном программном обеспечении область применения языка стала практически безграничной:&lt;br /&gt;
Разработка браузерных игр и графических виджетов.&lt;br /&gt;
Создание пользовательских скриптов для браузеров (автоматическое заполнение паролей, переформатирование и фильтрация контента на сторонних сайтах).&lt;br /&gt;
Разработка серверных приложений. Использование специализированных движков позволяет выполнять код на стороне веб-сервера.&lt;br /&gt;
Программирование внутри прикладного программного обеспечения. Интерпретаторы JavaScript встроены в такие продукты, как Adobe Photoshop, Adobe Illustrator и пакет OpenOffice, где язык используется для создания мощных макросов.&lt;br /&gt;
Написание трансляторов и виртуальных машин. Высокая гибкость языка позволяет писать на нем компиляторы для исполнения кода других языков в браузере (например, существуют реализации виртуальных машин для Ruby, Haskell, Prolog, Forth, PHP и Python на базе JavaScript).&lt;br /&gt;
Обучение программированию. Благодаря легкости в освоении язык часто применяется в образовательных программах для начинающих разработчиков.&lt;br /&gt;
&lt;br /&gt;
== Вопросы безопасности ==&lt;br /&gt;
Так как JavaScript исполняется на клиентском устройстве и имеет доступ к объектам веб-страницы, вопросы безопасности играют критическую роль в его архитектуре. Язык часто становится инструментом для создания троянских программ, похищения паролей и организации мошеннических схем.&lt;br /&gt;
&lt;br /&gt;
Для противодействия угрозам в язык внедрена строгая концепция «песочницы» (sandbox), запрещающая прямое взаимодействие с файловой системой пользователя. Кроме того, функционирует правило ограничения домена (Same-origin policy), блокирующее попытки скрипта получить доступ к данным страницы, загруженной с другого домена.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, злоумышленники постоянно используют межсайтовые уязвимости. Основными векторами атак являются межсайтовый скриптинг (XSS), позволяющий внедрять вредоносный код в доверенные сайты, и подделка межсайтовых запросов (CSRF), при которой браузер пользователя тайно выполняет несанкционированные действия (например, финансовые транзакции). Дополнительные риски несут уязвимости в браузерных плагинах (таких как устаревший Adobe Flash) и операционных системах. Так, в операционных системах семейства Windows скрипты JavaScript долгое время могли исполняться с привилегиями обычных программ, что привело к массовому созданию системных вирусов на базе этого языка.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
[[JOSS]]&lt;br /&gt;
[[MATH-MATIC]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Языки программирования]]&lt;br /&gt;
[[Category:Объектно-ориентированное программирование]]&lt;br /&gt;
[[Category:Скриптовые языки]]&lt;br /&gt;
[[Category:Динамические языки программирования]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=gXLeB6Ndae4 Смотреть видео]&lt;/div&gt;</summary>
		<author><name>Yaroslav</name></author>
	</entry>
</feed>