Javascript что за программа

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

ru.javascript.info / 1-js / 01-getting-started / 1-intro / article.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
121 lines (73 sloc) 14.5 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

Введение в JavaScript

Давайте посмотрим, что такого особенного в JavaScript, чего можно достичь с его помощью и какие другие технологии хорошо с ним работают.

Что такое JavaScript?

Изначально JavaScript был создан, чтобы «сделать веб-страницы живыми».

Замыкания в JavaScript ЗА 1 МИНУТУ. САМОЕ ПРОСТОЕ ОБЪЯСНЕНИЕ + РЕАЛЬНЫЙ ПРИМЕР #Shorts

Программы на этом языке называются скриптами. Они могут встраиваться в HTML и выполняться автоматически при загрузке веб-страницы.

Скрипты распространяются и выполняются, как простой текст. Им не нужна специальная подготовка или компиляция для запуска.

Это отличает JavaScript от другого языка — Java.

Когда JavaScript создавался, у него было другое имя — «LiveScript». Однако, язык Java был очень популярен в то время, и было решено, что позиционирование JavaScript как «младшего брата» Java будет полезно. Со временем JavaScript стал полностью независимым языком со своей собственной спецификацией, называющейся [ECMAScript](https://ru.wikipedia.org/wiki/ECMAScript), и сейчас не имеет никакого отношения к Java.

Сегодня JavaScript может выполняться не только в браузере, но и на сервере или на любом другом устройстве, которое имеет специальную программу, называющуюся «движком» JavaScript.

У браузера есть собственный движок, который иногда называют «виртуальная машина JavaScript».

Разные движки имеют разные «кодовые имена». Например:

  • V8 — в Chrome, Opera и Edge.
  • SpiderMonkey — в Firefox.
  • . Ещё есть «Chakra» для IE, «JavaScriptCore», «Nitro» и «SquirrelFish» для Safari и т.д.

Эти названия полезно знать, так как они часто используются в статьях для разработчиков. Мы тоже будем их использовать. Например, если «функциональность X поддерживается V8», тогда «Х», скорее всего, работает в Chrome, Opera и Edge.

Движки сложны. Но основы понять легко. 1. Движок (встроенный, если это браузер) читает («парсит») текст скрипта. 2. Затем он преобразует («компилирует») скрипт в машинный язык. 3. После этого машинный код запускается и работает достаточно быстро.

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

JavaScript за 5 Минут

Что может JavaScript в браузере?

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

Возможности JavaScript сильно зависят от окружения, в котором он работает. Например, Node.JS поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов и т.д.

В браузере для JavaScript доступно всё, что связано с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.

Например, в браузере JavaScript может:

  • Добавлять новый HTML-код на страницу, изменять существующее содержимое, модифицировать стили.
  • Реагировать на действия пользователя, щелчки мыши, перемещения указателя, нажатия клавиш.
  • Отправлять сетевые запросы на удалённые сервера, скачивать и загружать файлы (технологии AJAX и COMET).
  • Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения.
  • Запоминать данные на стороне клиента («local storage»).

Чего НЕ может JavaScript в браузере?

Возможности JavaScript в браузере ограничены ради безопасности пользователя. Цель заключается в предотвращении доступа недобросовестной веб-страницы к личной информации или нанесения ущерба данным пользователя.

Примеры таких ограничений включают в себя:

  • JavaScript на веб-странице не может читать/записывать произвольные файлы на жёстком диске, копировать их или запускать программы. Он не имеет прямого доступа к системным функциям ОС. Современные браузеры позволяют ему работать с файлами, но с ограниченным доступом, и предоставляют его, только если пользователь выполняет определённые действия, такие как «перетаскивание» файла в окно браузера или его выбор с помощью тега . Существуют способы взаимодействия с камерой/микрофоном и другими устройствами, но они требуют явного разрешения пользователя. Таким образом, страница с поддержкой JavaScript не может незаметно включить веб-камеру, наблюдать за происходящим и отправлять информацию в ФСБ.
  • Различные окна/вкладки не знают друг о друге. Иногда одно окно, используя JavaScript, открывает другое окно. Но даже в этом случае JavaScript с одной страницы не имеет доступа к другой, если они пришли с разных сайтов (с другого домена, протокола или порта). Это называется «Политика одинакового источника» (Same Origin Policy). Чтобы обойти это ограничение, обе страницы должны согласиться с этим и содержать JavaScript-код, который специальным образом обменивается данными. Это ограничение необходимо, опять же, для безопасности пользователя. Страница https://anysite.com , которую открыл пользователь, не должна иметь доступ к другой вкладке браузера с URL https://gmail.com и воровать информацию оттуда.
  • JavaScript может легко взаимодействовать с сервером, с которого пришла текущая страница. Но его способность получать данные с других сайтов/доменов ограничена. Хотя это возможно в принципе, для чего требуется явное согласие (выраженное в заголовках HTTP) с удалённой стороной. Опять же, это ограничение безопасности.

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

Что делает JavaScript особенным?

Как минимум, три сильные стороны JavaScript:

+ Полная интеграция с HTML/CSS. + Простые вещи делаются просто. + Поддерживается всеми основными браузерами и включён по умолчанию.

JavaScript — это единственная браузерная технология, сочетающая в себе все эти три вещи.

Вот что делает JavaScript особенным. Вот почему это самый распространённый инструмент для создания интерфейсов в браузере.

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

Языки «над» JavaScript

Синтаксис JavaScript подходит не под все нужды. Разные люди хотят иметь разные возможности.

Это естественно, потому что проекты разные и требования к ним тоже разные.

Так, в последнее время появилось много новых языков, которые транспилируются (конвертируются) в JavaScript, прежде чем запустятся в браузере.

Современные инструменты делают транспиляцию очень быстрой и прозрачной, фактически позволяя разработчикам писать код на другом языке, автоматически преобразуя его в JavaScript «под капотом».

Примеры таких языков:

  • CoffeeScript добавляет «синтаксический сахар» для JavaScript. Он вводит более короткий синтаксис, который позволяет писать чистый и лаконичный код. Обычно такое нравится Ruby-программистам.
  • TypeScript концентрируется на добавлении «строгой типизации» для упрощения разработки и поддержки больших и сложных систем. Разработан Microsoft.
  • Flow тоже добавляет типизацию, но иначе. Разработан Facebook.
  • Dart стоит особняком, потому что имеет собственный движок, работающий вне браузера (например, в мобильных приложениях). Первоначально был предложен Google, как замена JavaScript, но на данный момент необходима его транспиляция для запуска так же, как для вышеперечисленных языков.
  • Brython транспилирует Python в JavaScript, что позволяет писать приложения на чистом Python без JavaScript.

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

  • JavaScript изначально создавался только для браузера, но сейчас используется на многих других платформах.
  • Сегодня JavaScript занимает уникальную позицию в качестве самого распространённого языка для браузера, обладающего полной интеграцией с HTML/CSS.
  • Многие языки могут быть «транспилированы» в JavaScript для предоставления дополнительных функций. Рекомендуется хотя бы кратко рассмотреть их после освоения JavaScript.
Читайте также:
Что за программа lego star Wars

Источник: github.com

Что такое JavaScript и зачем он нужен, где применяется

JavaScript — это язык программирования для широкого круга применения. Но, чаще всего, он применяется как сценарный язык — для программирования функциональности компонентов веб-страниц, создания их интерактивности. Именно в вебе этот язык задействуется наиболее часто. Современная веб-разработка без JavaScript не могла бы существовать в том виде, в котором она существует сегодня.

Чуть реже JavaScript используется для создания букмарклетов, офисных и серверных приложений. Также на нём выполняются манипуляции объектами приложений, разрабатываются мобильные приложения и прикладное ПО, а также создаются виджеты.

Простыми словами, JavaScript — это универсальный, мультипарадигменный язык программирования для решения широкого круга задач.

Как работает JavaScript в 2023 году

Внимание: не стоит путать язык с языком Java. Это абсолютно разные языки, хоть и заимствующие элементы языка С.

Краткое ревью: характеристики языка

Гибкость языка достигается за счёт использования продуманного синтаксиса функций, наличия деструктуризации, SPRED- и REST-операторов. Универсальный набор модулей классов делает JavaScript выразительным и понятным языком.

А благодаря поддержке объектно-ориентированного подхода (ООП), функционального и императивного программирования, этот язык можно рекомендовать специалистам с разным стеком технологий и разным уровнем знаний. Характерные маркеры JavaScript: представление функции в качестве объектов 1-класса, динамическая типизация, прототипирование, продуманная сборка мусора. Кроме того, язык характеризуется наличием слабой типизации. Язык JS популярен не только во фронтенде, но и в бэкенде, а также в гибридных приложениях. Используется язык и при создании программ для встраиваемых устройств и других сценариев.

«Привет мир» на JS (встроен в HTML-документ)

«Привет мир» на JS (встроен в HTML-документ)

Язык включает в себя четыре главных компонента — это движок, среда выполнения, стек вызовов, параллелизм и цикл событий. Давайте посмотрим, как всё это взаимодействует друг с другом и по отдельности. Начнём с самого главного — с движка.

Как работает движок JS

Язык является интерпретируемым. Это значит, что непосредственный исходный код никогда не компилируется в двоичный (перед выполнением). Если ваш компьютер находит стандартный текстовый сценарий (скрипт), то он сразу сможет выполнить его. Для этого и будет использован движок JS.

Функцию можно представлять в качестве свойства (для объекта)

Функцию можно представлять в качестве свойства (для объекта)

Движок, по сути, это программа, для выполнения кода JavaScript. И такие движки сегодня есть абсолютно в любом браузере. Конечно, у каждого браузера свой собственный движок JS. Наиболее известен в 2023 году V8 — он находится под капотом Google Chrome и других браузеров на основе Chromium, кроме того его использует Node.js.

При попытке загрузить скрипт в браузер — движок JS начинает выполнять построчно файл целиком. Таким образом, движок JS разбирает код — строка за строкой, преобразовывая его в машинный код и только затем — движок приступает к его выполнению.

Схема работы движка JavaScript. Код выполняется построчно

Схема работы движка JavaScript. Код выполняется построчно

Движок JavaScript состоит из двух элементов:

      1. Call Stack. Если дословно, то это стек вызовов, который мы уже упомянули выше. По сути — это место, где происходит фактическое выполнение написанного кода.
      2. Memory Heap. Это такое место, где происходит распределение памяти необходимой для выполнения программы. Представляет из себя не-структурированный пул памяти, в котором временно хранятся все компоненты, которые нужны для приложения.

      Как работает Runtime

      Итак, мы поняли, что абсолютно любой движок JavaScript включает в себя Call Stack and Memory Heap. Но эти и другие компоненты не работают изолировано. Вместе они функционируют в так называемой JS Runtime Environment — именно эта среда делает язык асинхронным. Благодаря ней происходит асинхронное выполнение заголовочных запросов, кроме того — можно использовать метод listener (для событий).

      JavaScript runtime environment состоит из пяти главных компонентов:

          1. JS Engine. Это тот самый движок языка, который мы уже упомянули выше.
          2. Web API. Это программный интерфейс приложения.
          3. Callback queue or message queue. Это очередь обратных вызовов или очередь сообщений.
          4. Event Table. Это таблица событий.
          5. Event loop. Это уже знакомый нам цикл событий.

          Call Stack

          Это стек вызовов. По сути — просто структура данных, которая записывает конкретное место в программе, где мы находимся в данный момент. Если мы обращаемся к функции, то она находится на вершине стека. Если, например, мы наоборот возвращаемся от функции — она уходит с вершины стека. Вот так элементарно это всё работает.

          Для наглядности — посмотрите на этот пример:

          function multiply(x, y) < return x * y; >function printSquare(x) < var s — multiply(x, x); console.log(s); >printSquare(5);

          При начале выполнения этого примера стек вызовов будет пустым. Но сразу после — начнётся цикл из пяти шагов:

          Последовательность «работы» Call Stack

          Последовательность «работы» Call Stack

          Каждый вход в стеке вызовов называется фреймом.

          И поскольку JS является однопоточным Call Stack у него только один. Более того: выполнять больше одного действия за одно обращение — он не умеет. Но у такого подхода есть не только большой недостаток, но и и преимущество — отсутствуют ошибки, характерные для многопоточных сред.

          Параллелизм и цикл событий

          Когда в стеке накапливается сразу несколько вызовов может потребоваться продолжительное количество времени, чтобы функция была выполнена. Для примера возьмем самый частый сценарий — выполнение скрипта в браузере. В чём загвоздка?

          Всё очень просто: пока в стеке есть активная функция, которая должна быть выполнена, браузер будет заблокирован (до тех пор, пока эта функция не будет выполнена или не приведёт к ошибке, тогда браузер просто зависнет). Пока функция не будет выполнена браузер не может начать выполнять никакой другой код. Что говорить, если браузер начинает обрабатывать сразу большое количество задач в стеке? И это действительно является большой проблемой, если вы хотите получить хорошее юзабилити и плавный пользовательский интерфейс в приложении.

          Особенности языка

          Чтобы лучше понять специфику синтаксиса и других особенностей языка, посмотрите на этот пример JavaScript:

          Пример синтаксиса JavaScript

          Пример синтаксиса JavaScript

          Пример синтаксиса JavaScript

          Интересно, что синтаксис JavaScript — C-подобный. Пожалуй, именно этим язык больше всего похож на своего старшего собрата — Java.

          Давайте подытожим ключевые особенности JavaScript прямо сейчас.

              • Динамическая типизация. С технической точки зрения — это означает, что тип данных идентифицируется только когда происходит присвоение значения какой-либо переменной, либо — константе.
              • Большое количество сторонних инструментов, которые работают с языком. Например, генераторы, фреймворки, вспомогательные библиотеки и сборщики.
              • Универсальность. Если мы говорим о совместимости по отношению к современным браузерам, то JavaScript понимают и умеют интерпретировать абсолютно все браузеры, которые есть в 2023 году.
              • Интерпретируемость. Код программы может быть интерпретирован исключительно при обращении. При этом не нужна пре-компиляция кода.
              • Широкое сообщество. Огромное количество профессиональных разработчиков и любителей работают на JS и развивают его изо дня в день.
              • Полная поддержка объектно- ориентированного программирования.
              • Полная поддержка прототипного программирования.

            Функции используются в качестве объектов 1-о класса. Это означает: функции можно присваивать любым переменным, возвращать из функций, а также делать другие обращения, как с объектами 1-о класса (например, передавать исходную функцию как параметр для какой-либо другой функции).

            В нашем уроке на JavaScript мы сделали настоящий калькулятор.

            Создание калькулятора на JavaScript

            Создание калькулятора на JavaScript

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

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

            Ну и конечно, нельзя не порекомендовать курс «Комплексное обучение JavaScript». Это комплексное, продуманное обучение, который подойдет веб-разработчикам с опытом от 1 года.

            Где используется JavaScript

            Главная область применения — это веб-приложения: AJAX, браузерные ОС и «Комет». Ну и конечно: представить современный веб, без скриптов на JavaScript, на всех сайтах — просто невозможно.

            Класс – является разновидностью функции

            Класс – является разновидностью функции

            Также JavaScript используется при создании:

            • Букмарклетов. Это небольшие браузерные закладки, которые выполняют какую-либо функцию.
            • Скриптов в браузере. Такие скрипты выполняются в браузере пользователя при загрузке какого-либо веб-документа. Примеры сценариев пользовательских скриптов: добавление элементов, автоматическое заполнение форм, отображение содержимого, форматирование страницы, скрытие или показ содержимого.
            • Серверных приложений. JS приложения часто исполняются на серверах, которые написаны на других языках. Построить серверную логику без JavaScript, нередко, сложно (если от него зависят другие компоненты). Кроме того, некоторые серверные приложения используют специальные интерпретаторы, которые также не смогли бы работать без JS.
            • Мобильных приложений. Несмотря на то, что для мобильной разработки этот язык используется редко, такие случаи всё равно существуют.
            • Элементов графических интерфейсов. Например, виджетов. Программирование функциональности виджетов при помощи этого языка используют даже гиганты Google, Apple, Yahoo и «Майкрософт».
            • Прикладного ПО. Язык настолько гибок, что на нём создаются даже десктопные программы. Например, операционная система Google Chrome, свободная среда рабочего стола Gnome и браузер Mozilla Firefox на движке Quantum. Всё это работает на JavaScript.
            • Доступа к объектам приложений. Сценарий для манипуляций объектами есть в программах Adobe, например.
            • Офисных приложений. Такие программы, как OpenOffice или Microsoft Office нельзя представить без JavaScript. Там этот язык используется для создания макросов, настройки доступа к веб-службам, интерпретирования каких-либо объектов. И, конечно, этот язык используется для углубленного изучения информатики или в качестве универсального первого языка программирования.
            • Сборников классов и функций. Библиотек для JavaScriptочень много. По сути — это просто набор каких-либо популярных объектов или набор функций. Такие библиотеки используются для сокрытия деталей реализации какого-либо набора функций, построения кроссбраузерности, при создании любых веб-приложений.
            Читайте также:
            Приложение getupps что это за программа

            Простейшая программа, которая показывает время и дату

            Простейшая программа, которая показывает время и дату

            Кроме того, язык используется для:

            • Целей отладки. В 2023 году отладчики на основе JavaScript есть во всех популярных браузерах, включая, Opera, Safari, Internet Explorer, Firefox. Включить консоль разработчика в браузере Safari можно в продвинутых настройках, отметив этот чекбоксВключить консоль разработчика в браузере Safari можно в продвинутых настройках, отметив этот чекбокс
            • Для тестов. Это сложная тема и JavaScript для тестирования активно используется, однако, он обладает большим количеством недостатков. Тем не менее, фреймворки на JavaScript всё равно активно используются сегодня. Найти ошибку в выполняемом коде можно в консоли (инструменты разработчика) браузераНайти ошибку в выполняемом коде можно в консоли (инструменты разработчика) браузера

            Какие задачи способен решать JavaScript

            Это целый спектр задач фронт- и бэкенда. На JavaScript возможно воплотить:

            1. Мобильное приложение для любой операционной системы.
            2. Клиентскую часть приложения. Практически все типичные задачи фронтэнда могут быть решены при помощи этого языка.
            3. Серверную часть приложения. Аналогично, большое количество задач бэкенда успешно реализовывается при помощи JavaScript. Например, настройка пушей в десктопном браузере.

            Пример инициализирования объекта методом constructor()

            Пример инициализирования объекта методом constructor()

            Вот несколько типовых сценариев для веба, которые вы можете решить с помощью JS:

            • Создание калькуляторов или настройка математических вычислений.
            • Создание всплывающих окон на сайте.
            • Программирование функциональности кнопок на сайте.
            • Создание анимации на странице.
            • Заполнение форм необходимыми данными.

            Источник: loftschool.com

            Что такое JavaScript?

            Monty Shokeen

            Monty Shokeen Last updated Jul 15, 2021

            Read Time: 10 min

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

            Любое приложение, которое может быть написано на JavaScript, в конечном итоге будет написано на JavaScript.

            На момент написания этой статьи существует такое большое множество фреймворков и библиотек, что тяжело представить с чего начать, особенно когда вы новичок.

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

            Наоборот эта статья специально написана для тех, кто никогда (или очень редко) не написал ни строки на JavaScript, и хочет узнать больше о языке и понять его. Кроме того мы рассмотрим, как он используется и что от него можно ожидать.

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

            Определение JavaScript.

            Вы наверняка слышали, что JavaScript считают «client-side» скриптовым языком, другими словами это язык программирования, который выполняется в браузере.

            JavaScript это динамический, нетипизированный и интерпретируемый язык высокого уровня. Был стандартизирован ECMAScript спецификацией языка.

            Все вышеперечисленное верно (с различной степенью сложности), но также стоит отметить, что JavaScript может также выполняться и на стороне сервера. Хотя это мы уже забегаем вперед. Вместо этого, давайте сначала поговорим о некоторых пунктах выше, а затем уже перейдем к серверной стороне JavaScript.

            • Высокий уровень. Когда язык программирования является языком высокого уровня, то считается что он построен без необходимости знать тонкости о базовой работе компьютера. У вас нет необходимости в управлении памятью, не нужно знать тип процессора, на котором выполняется программа, и не нужно иметь дело с указателями (как например в C или Ассемблере).
            • Динимический. Динамические языки позволяют разработчикам расширять определенные аспекты языка, добавляя новый код или предоставляя новые объекты (как например Post объект) во время выполнения программы, вместо ее повторной компиляции. Это мощная возможность JavaScript.
            • Нетипизированный. Если у вас есть опыт в программировании, то вы вероятнее всего имели опыт с языками, в которых вы должны указывать тип переменной, с которой вы работаете. Например, ваша переменная содержит значение типа string или boolean . В JavaScript это необязательно. Вместо этого вы просто объявляете переменную с помощью ключевого слова var .
            • Интерпретируемый. Когда язык является компилируемым, то код, который вы пишете, преобразуется в исполняемый бинарный файл, который вы можете передать другим. В Windows такие файлы известны как EXE файлы. В OS X это обычно программы, которые вы скачиваете из App Store или те, которые вы перетаскиваете в папку Applications. JavaScript является интерпретируемым, это означает что ему не нужен компилятор. Вместо этого код интерпретируется (как PHP), так что существует промежуточное программное обеспечение, называемое интерпретатором, которое находится посередине между вашим кодом и компьютером и транслирует инструкции.
            • Стандартизирован. JavaScript является стандартизированным (официальное имя ECMAScript), что означает что любой браузер, реализующий стандарт, будет предоставлять те же возможности, что и любой другой такой же браузер. Если бы они не были стандартизированы, то Chrome бы предоставлял некоторые функции, которых не было бы в Edge и наоборот.

            Теперь, когда мы рассмотрели атрибуты языка, мы можем обсудить некоторые его аспекты и нюансы.

            Хотя все, перечисленное выше и является важным, но также необходимо знать, каким образом язык работает (особенно если вы работали с другими языками), так что вы преступаете к разработке с осознанием того как язык должен работать, а не как он может работать.

            Я в этой статье опишу то, как язык работает, так что вы можете начать писать код с пониманием того, что вы делаете.

            О языке

            Прежде всего JavaScript — это объектно ориентированный язык программирования, но он вероятно немного отличается от того, что вы обычно видели (если вы ранее использовали объектно ориентированный язык программирования).

            JavaScript является языком прототипов. Это означает, что все объекты в JavaScript, такие как String основаны на прототипах.

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

            Прототипное программирование — стиль объектно ориентированного программирования, в котором повторное использование поведения (известное как наследование) осуществляется через процесс клонирования существующих объектов, которые служат в качестве прототипов.

            Я могу утверждать, что, если вы никогда не работали с объектно ориентированным языком раньше, то будете иметь преимущество, потому что у вас нет готовой концептуальной модели для того чтобы представлять то, как это работает.

            Если с другой стороны, вы прежде работали с такими языками, то следует определить различия между прототипным и классическим наследованием.

            • В классическом наследовании, мы как разработчики, пишем класс. Множество объектов может быть создано из этого единичного класса. Кроме того, мы можем затем написать другой класс, который наследуется от этого класса и затем создавать экземпляры этих классов. В такой ситуации, подклассы делят код со своим базовым классом. Таким образом, когда вы создаете инстанс подкласса, вы получаете функционал и подкласса и родительского класса.
            • В прототипом наследовании, нет такой вещи как классы. Вместо этого вы просто определяете объект и необходимую функциональность. Когда вам необходимо добавить функциональность к существующему объекту, вы делаете это добавляя ее к прототипу объекта. Если вы попытаетесь вызвать метод такого объекта как Number , то сначала JavaScript попытается найти этот метод в этом объекте. Если его там не будет, то будет дальше двигаться вверх по цепочке, пока не найдет нужный метод (который может находится в базовом Object ).
            Читайте также:
            Abbyy finereader 10 что это за программа

            Последней и, возможно, наиболее важной вещью, является то, что когда вы делаете изменения в объекте через его прототип, то они становятся доступны для всех, кто использует этот объект (по крайней мере в контексте вашей среды).

            Это действительно мощный инструмент, но он так же заставляет немного изменить ваше мышление, если вы до этого не пользовались им.

            Как мы используем JavaScript?

            Что касается того, как нам правильно использовать JavaScript, то это по большей части зависит от ваших конечных целей. С одной стороны, работа с JavaScript подразумевает, что вы хотите получить какие-то действия на web-странице. Предполагалось, что для управления поведением.

            Это может быть управление элементом, удаление (или скрытие) элемента, или вещи вроде того. Затем веб-сайты стали по-немногу расширяться и браузеры научились делать асинхронные вызовы на сервер, обрабатывать ответ, а затем изменять состояние страницы на основе этого ответа.

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

            Но и это еще не все.

            Google разработала весьма сложный движок JavaScript, известный как V8, так же и другие браузеры работают над предоставлением оптимальной производительности JavaScript.

            The landing page for Chrome V8 Googles JavaScript Engine

            В самом деле мы теперь можем писать JavaScript на сервере, используя такие инструменты, как Node.js. Кроме того мы даже можем создавать гибридные приложения, которые могут работать на наших мобильных устройствах. Это означает, что мы можем создавать приложения на JavaScript как для телефонов и планшетов, так и для десктопов.

            The homepage for Nodejs a runtime engine for writing JavaScript on the server

            И все это благодаря языку, который когда то был создан для создания анимации на экране. Все это было сказано, что бы вы, являясь новичком в JavaScript, не недооценивали его.

            Что следует ожидать от языка?

            Все описанное выше конечно же интересно читать, и здорово осознавать возможности языки, но с практической точки зрения, что нам следует ожидать от JavaScript?

            Независимо от того являетесь ли вы новичком или вы хотите освоить новый язык, имея уже опыт работы с другими, у вас всегда имеется набор ожиданий того, что язык может предложить.

            Хотя мы и говорили о том, как работает язык изнутри, но мы не обсуждали объекты, которые доступны в языке, не говоря уже о API-интерфейсах. Честно говоря, обсуждение API и встроенных функций — это уже тема для отдельной статьи.

            Но обсуждение встроенных объектов? Это мы можем рассмотреть перед окончанием статьи:

            • Object. Базовый объект, от которого все остальные объекты наследуют некий базовый функционал.
            • Function. Поскольку JavaScript является полностью объектно- ориентированным языком, то это означает, что все является объектом, включая функции. Таким образом, когда вы создаете функцию, вы создаете ссылку на объект типа Function. И функции имеют свойства, которые вы можете просмотреть вовремя исполнения (как и переданные в нее аргументы).
            • Boolean. Этот объект является объектом-оберткой над булевым значением. В большинстве языков булевы значения могут быть либо true , либо false . В JavaScript по-прежнему можно работать с этими значениями, но их следует рассматривать как объекты.
            • Number. Во многих языках программирования есть примитивные типы данных, такие как float , int , double и другие. В JavaScript, есть только тип number, и он также является объектом.
            • Date. Работа с датами в программировании редко бывает приятным занятием, особенно когда вы имеете дело с часовыми поясами. Я не могу сказать, что JavaScript решит все ваши проблемы, связанные с часовыми поясами, но может сильно упростить работу с датами.
            • String. Почти все языки программирования имеют примитивный тип данных — строка. В этом JavaScript мало чем отличается, и как следовало ожидать, строка является объектом со своими собственными свойствами.

            Запомните, что все типы данных, перечисленные выше, являются объектами со своими собственными свойствами и методами. Но это не означает, что вам необходимо вызывать конструктор для создания переменных. Вы можете создавать строки, числа или булевы значения следующим образом:

            var example_string = ‘Hello world!’;
            var example_boolean = true;
            var example_number = 42;

            Но, в конечном счете, они по-прежнему являются объектами.

            Чтобы было ясно, это всё — основные объекты. Есть еще несколько специальных объектов, которые следует рассмотреть, если вы собираетесь работать с обработкой ошибок, различными типами коллекций и прочее.

            Если эта тема вас заинтересовала, то я настоятельно рекомендую вам данную страницу из Mozilla Developer Network.

            Какие библиотеки и фреймворки доступны?

            Если вы следили за различными фреймворками, библиотеками и другими инструментами, связанными с JavaScript, то не останетесь позади всего этого огромного многообразия.

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

            • jQuery — это библиотека, которая призвана обеспечить кросс браузерный интерфейс API, который позволяет «писать меньше, а делать больше».
            • Angular — JavaScript фреймворк, нацеленный на создание одно-страничных приложений.
            • React — это библиотека JavaScript для создания пользовательских интерфейсов.
            • Backbone нацелен на создание структурировнных веб-приложений через использование моделей, коллекций и отображений.
            • Ember.js — другой фреймворк для «создания амбициозных веб-приложений».
            • И много других.

            Это далеко не полный перечень того, что доступно, но это стартовый список, который вы должны по крайней мере знать, даже если и не будете с ними работать.

            И как только вы начнете изучать JavaScript и начнете использовать некоторые из этих инструментов, вы сможете обнаружить насколько популярными они являются.

            Изучая JavaScript

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

            • Проверка знаний: JavaScript ES6, Вы нашли правильный инструмент для работы?
            • Держим обещания с JavaScript
            • Создание одно-страничных приложений с WordPress и Angular.js
            • Шаблонные Строки в ES6
            • Основы JavaScript ES6
            • Тестирование директив Angular
            • JavaScript для Windows 10 Universal Apps

            Все эти ресурсы идеальны для начала работы с JavaScript и добавления его в ваш багаж навыков разработки для веб.

            Заключение

            JavaScript всегда находится рядом с веб-разработкой. Хотя вы можете и не использовать то, что называете «vanilla JavaScript» и выбрать любую из доступных библиотек или фреймворков, JavaScript является языком который должен знать почти любой веб-разработчик.

            Конечно же не все работают с фронтендом. Некоторые разработчики занимаются только серверной стороной, некоторые — наоборот только клиентской. Тем не менее мы все должны работать вместе, чтобы убедиться, что различные части нашего приложения корректно общаются друг с другом.

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

            Не спешите сразу отказываться от JavaScript, только лишь потому что вы не являетесь фронтенд разработчиком. Вероятнее всего тот, с кем вы работаете, будет его использовать и ему может потребоваться ваша помощь, чтобы связать вместе части приложения.

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

            Если вам понравилась эта статья, можете просмотреть мои курсы и обучающие материалы в моем профиле, также если вы заинтересованы, то можете найти много статей о WordPress и разработке под WordPress в моем блоге.

            Дополнительные ресурсы

            • Изучаем программирование на JavaScript
            • Выразительный JavaScript Marijn Haverbeke
            • JavaScript: Сильные Стороны
            • JavaScript в Mozilla Developer Network

            Источник: code.tutsplus.com

            Рейтинг
            ( Пока оценок нет )
            Загрузка ...
            EFT-Soft.ru