---
title: JavaScript
slug: Web/JavaScript
tags:
- Infrastructure
- Interface
- Intermediate
- Internationalization
- Intro
- JavaScript
- Learn
- 'l10n:exclude'
- 'l10n:priority'
- Все_категории
translation_of: Web/JavaScript
---
{{JsSidebar()}}
JavaScript® (часто просто JS) — это легковесный, интерпретируемый или JIT-компилируемый, объектно-ориентированный язык с {{Glossary("First-class_Function", "функциями первого класса")}}. Наиболее широкое применение находит как язык сценариев веб-страниц, но также используется и в других программных продуктах, например, node.js или Apache CouchDB. JavaScript это {{Glossary("Prototype-based_programming", "прототипно-ориентированный")}}, мультипарадигменный язык с динамической типизацией, который поддерживает объектно-ориентированный, императивный и декларативный (например, функциональное программирование) стили программирования. Подробнее о JavaScript.
Эта часть сайта посвящена самому языку JavaScript, и она не затрагивает тонкостей, связанных с веб-страницами или окружением, в котором исполняется JavaScript. Информация об {{Glossary("API")}}, относящихся к веб-страницам, находится в разделах, посвящённых Веб-API и DOM.
Стандартом языка 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 в США и других странах. Однако, у обоих языков различный синтаксис, семантика и применение.
Учебные материалы
Научитесь программировать на JavaScript вместе с нашим руководством.
Для абсолютных новичков
Загляните в наш Учебный План, если вам хочется изучить JavaScript, но у вас нет опыта в JavaScript или программировании. Доступные разделы:
- Первые шаги в JavaScript
- Отвечаем на такие вопросы, как "что такое JavaScript?", "как он выглядит?", "и что он может делать?", а также обсуждаем основные возможности JavaScript, такие, как переменные, строки, числа и массивы.
- Структурные элементы JavaScript
- Продолжаем наше изучение главных возможностей JavaScript, обращаем наше внимание на самые часто встречающиеся блоки кода, такие, как условные выражения, циклы, функции и события.
- Введение в объекты JavaScript
- Объектно-ориентированная природа JavaScript важна для понимания, если вы хотите углубить знание языка и писать более эффективный код. Поэтому мы подготовили модуль, который поможет вам в этом.
- Асинхронный JavaScript
- Обсуждение асинхронного JavaScript: почему это так важно, как эта возможность языка может использована для обработки потенциальных блокирующих операций, как, например получение данных с сервера.
- Клиентские (браузерные) веб-API
- Когда вы пишите клиент веб-сайтов или приложений на JavaScript, вы не далеко уйдёте без использования API – интерфейсов для взаимодействия с браузером и операционной системой, на которой запущен сайт, или даже для операций с данными, полученными от других веб-сайтов и сервисов. В этом цикле статей мы разбираемся, что такое API и как использовать некоторые самые распространённые API, которые вам встретятся при разработке.
Руководство по JavaScript
- Руководство по JavaScript
- Более подробное руководство по языку программирования JavaScript, нацеленное на тех, кто уже имеет опыт программирования на JavaScript или на любом другом языке.
Средний уровень
- Понимание JavaScript-фреймворков для фронтенда
-
JavaScript-ффреймворки являются неотъемлемой частью современной веб-разработки,
предоставляя разработчикам проверенные и протестированные
инструменты для создания масштабируемых и интерактивных веб-приложений. Многие
современные компании используют фреймворки для своих решений, поэтому многие задачи связанные с разработкой клиентской части веб-приложений теперь требуют опыта работы с ними.
- Повторное введение в JavaScript
- Обзор для тех, кто думает, что знает JavaScript.
- Структуры данных JavaScript
- Обзор существующих структур данных в JavaScript.
- Операторы сравнения и тождественности
- JavaScript предоставляет три различных оператора сравнения значений: строгое равенство
===
, с приведением типов ==
и метод {{jsxref("Global_Objects/Object/is", "Object.is()")}}.
- Замыкания
- Замыкания это сочетание функции и лексического окружения в котором она была определена.
Продвинутый уровень
- Наследование и цепочка прототипов
- Статья разъясняет бытующие заблуждения и недооцененность наследования, основанного на прототипах.
- Строгий режим — "use strict"
- Строгий режим говорит о том, что вы не можете использовать какую-либо переменную до её объявления. Это ограниченный вариант ECMAScript 5, для более быстрой производительности и простой отладки.
- Типизированные массивы
- Типизированные массивы предоставляют механизм для работы с необработанными двоичными данными в JavaScript.
- Управление памятью
- Жизненный цикл памяти и сборка мусора в JavaScript.
- Модель параллелизма (мультипоточности) и цикл событий
- В JavaScript есть модель параллелизма, основанная на "цикле событий".
- Введение в использование XPath в JavaScript
- Этот документ описывает интерфейс для использования XPath в JavaScript на прямую, внутри расширений и на веб-сайтах.
Подробный справочник по JavaScript.
- Стандартные встроенные объекты
- Узнайте о стандартных встроенных объектах {{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Error")}}, {{jsxref("Function")}}, {{jsxref("JSON")}}, {{jsxref("Math")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("RegExp")}}, {{jsxref("String")}}, {{jsxref("Map")}}, {{jsxref("Set")}}, {{jsxref("WeakMap")}} , {{jsxref("WeakSet")}} и других.
- Выражения и операторы
- Узнайте о поведении таких операторов в JavaScript, как {{jsxref("Operators/instanceof", "instanceof")}}, {{jsxref("Operators/typeof", "typeof")}}, {{jsxref("Operators/new", "new")}}, {{jsxref("Operators/this", "this")}}, приоритете операторов и многом другом.
- Инструкции и объявления
- Узнайте о {{jsxref("Statements/do...while", "do-while")}}, {{jsxref("Statements/for...in", "for-in")}}, {{jsxref("Statements/for...of", "for-of")}}, {{jsxref("Statements/try...catch", "try-catch")}}, {{jsxref("Statements/let", "let")}}, {{jsxref("Statements/var", "var")}}, {{jsxref("Statements/const", "const")}}, {{jsxref("Statements/if...else", "if-else")}}, {{jsxref("Statements/switch", "switch")}} и многих других выражениях и ключевых словах в JavaScript.
- Функции
- Узнайте, как работать с функциями в JavaScript, чтобы разрабатывать свои приложения.
Полезные инструменты для написания и отладки вашего JavaScript кода.
- Инструменты разработчика Firefox
- Простой редактор JavaScript, Веб-консоль, JavaScript Профайлер, Отладчик и другие.
- JavaScript шеллы
- JavaScript шеллы позволяют быстро проверять фрагменты JavaScript кода.
- TogetherJS
- Объединение усилий стало проще. Добавляя TogetherJS на вашу веб-страницу, ваши пользователи могут помочь другу-другу в реальном времени!
- Stack Overflow
- Вопросы по JavaScript на Stack Overflow.
- Версии JavaScript и информация о релизах
- Просмотрите историю возможностей JavaScript и их статус.
- JSFiddle
- Редактируйте JavaScript, CSS, HTML и получайте живые результаты. Используйте экспериментальные ресурсы и взаимодействуйте с вашей командой онлайн.
- Plunker
- Plunker - это онлайн-сообщество для создания, обмена и совместной работы над идеями, касающимися веб-разработки. Редактируйте ваши JavaScript, CSS, HTML файлы, смотрите результат их выполнения и организуйте их в файловую структуру.
- JSBin
- JS Bin это инструмент с открытым исходным кодом для отладки и совместной разработки.
- Codepen
-
Codepen ещё одна платформа для совместной веб-разработки, дающие результат в реальном-времени.
- StackBlitz
-
StackBlitz - это "песочница"/инструмент отладки, где вы можете размещать полновесные приложения написанные на React, Angular, т др.