Описание
JavaScript относится к языкам, в которых нет особых различий в парадигмах. Это значит, что можно писать в объектно-ориентированном, функциональном, императивном и других стилях. Именно такой подход сильно повлиял на простоту его изучения и применения. К слову, как раз с этой целью он и создавался.
Скорее всего, факт простоты и функциональности и сыграл решающую роль в развитии и распространении языка. Он стал настолько популярен, что используется практически во всех сферах веб-программирования. JavaScript не принадлежит ни одной компании. Однако само название JavaScript зарегистрировано за Oracle, которой также принадлежит Java.
Немного истории
Первые попытки создать новый удобный язык были предприняты в 1992 компанией Nombas. За основу был взят язык С. Конечная версия обрела название CEnvi. Однако большого распространения данный продукт так и не получил. Затем за дело взялись программист Брендан Эйх, сооснователь Netscape Марк Андриссен и сооснователь Sun Билл Джой. Они лелеяли мечту создать такой язык, который бы смог объединить все части веб-интерфейса, и при этом был бы лёгким для изучения и применения. Синтаксис был взят из модных на тот момент языков высокого уровня — СИ и Java.
По ходу разработки продукт несколько раз переименовывали. Начальная версия называлась Mocha, затем — LiveScript, и уже в финале — JavaScript. В наше время практически каждый пользователь Интернета хотя бы отдалённо знает, что такое JavaScript.
Характеристики языка
Сценарный — при созданий программ, их ненужно компилировать (как например в языках Си, Си++, Паскаль или Бэйсик), просто создаёте скрипт-программу в текстовом редакторе, а интерпретатор JavaScript (который уже встроен в веб-браузер), потом этот скрипт обрабатывает и выполняет.
Клиентский — интерпретатор скриптов находится не на web-сервере (как например у серверных языков — PHP или Perl), а в веб-браузере, поэтому для создания и выполнения скриптов JavaScript, устанавливать веб-сервер не нужно, необходимы лишь текстовый редактор (например Блокнот или популярный нынче Sublime Text 3) и веб-браузер (например FireFox, Opera, IE или Chrome и т.д.).
Прототипно-ориентированный — JavaScript поддерживает создание и наследование объектов, однако классы в нём отсутствуют.
Динамическая типизация — в отличие от других языков программирования, таких как Си, Си++ или Паскаль, переменные в JavaScript во время исполнения программы, имеют возможность менять свой тип данных. Это происходит потому, что тип данных в JavaScript, присваивается не во время объявления переменной, а во время её инициализации.
Функции — в языке JavaScript, функции являются объектами первого класса, это означает, что переменным вместо значения, также можно присваивать и функции.
Автоматическая очистка памяти — при исполнении программ, интерпретатор JavaScript самостоятельно очищает память от неиспользуемых элементов.
Что может JavaScript в браузере?
Современный JavaScript – это «безопасный» язык программирования. Он не предоставляет низкоуровневый доступ к памяти или процессору, потому что изначально был создан для браузеров, не требующих этого.
Возможности JavaScript сильно зависят от окружения, в котором он работает. Например, Node.JS поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов и т.д.
В браузере для JavaScript доступно всё, что связано с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.
Например, в браузере JavaScript может:
- Добавлять новый HTML-код на страницу, изменять существующее содержимое, модифицировать стили.
- Реагировать на действия пользователя, щелчки мыши, перемещения указателя, нажатия клавиш.
- Отправлять сетевые запросы на удалённые сервера, скачивать и загружать файлы (технологии AJAX и COMET).
- Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения.
- Запоминать данные на стороне клиента («local storage»).
Внедрение в документ происходит путем указания специальных тегов, означающих начало и конец скрипта — . Как правило, встраивать скрипт непосредственно в HTML-код считается моветоном. Более изящным и признанным способом является вынесение кода в отдельный файл, а затем подключение его в нужном месте страницы.
Что такое JavaScript в плане синтаксиса? Типичный код может выглядеть так:
Это самая простейшая реализация, с помощью которой можно увидеть базисные элементы и их использование. Объявление переменных в языке происходит путем указания ключевого слова var и последующего имени. Например, так: var variablename.
Чтобы присвоить ей некое значение, используется знак равенства. Есть 6 известных типов переменных в JavaScript. Это число, строка, булев, нуль, неопределённый и объект. Как правило, жёсткого указания типа при создании не требуется. То есть переменная может принимать практически любое значение. Более подробно о свойствах языка можно узнать из официальных руководств по нему.
Чего НЕ может
Возможности JavaScript в браузере ограничены ради безопасности пользователя. Цель заключается в предотвращении доступа недобросовестной веб-страницы к личной информации или нанесения ущерба данным пользователя.
Примеры таких ограничений включают в себя:
- JavaScript на веб-странице не может читать/записывать произвольные файлы на жёстком диске, копировать их или запускать программы. Он не имеет прямого доступа к системным функциям ОС.
Современные браузеры позволяют ему работать с файлами, но с ограниченным доступом, и предоставляют его, только если пользователь выполняет определённые действия, такие как «перетаскивание» файла в окно браузера или его выбор с помощью тега .
Существуют способы взаимодействия с камерой/микрофоном и другими устройствами, но они требуют явного разрешения пользователя. Таким образом, страница с поддержкой JavaScript не может незаметно включить веб-камеру, наблюдать за происходящим и отправлять информацию в ФСБ.
- Различные окна/вкладки не знают друг о друге. Иногда одно окно, используя JavaScript, открывает другое окно. Но даже в этом случае JavaScript с одной страницы не имеет доступа к другой, если они пришли с разных сайтов (с другого домена, протокола или порта).
Это называется «Политика одинакового источника» (Same Origin Policy). Чтобы обойти это ограничение, обе страницы должны согласиться с этим и содержать JavaScript-код, который специальным образом обменивается данными.
Это ограничение необходимо, опять же, для безопасности пользователя. Страница https://anysite.com, которую открыл пользователь, не должна иметь доступ к другой вкладке браузера с URL https://gmail.com и воровать информацию оттуда.
- JavaScript может легко взаимодействовать с сервером, с которого пришла текущая страница. Но его способность получать данные с других сайтов/доменов ограничена. Хотя это возможно в принципе, для чего требуется явное согласие (выраженное в заголовках HTTP) с удалённой стороной. Опять же, это ограничение безопасности.
Подобные ограничения не действуют, если JavaScript используется вне браузера, например — на сервере. Современные браузеры предоставляют плагины/расширения, с помощью которых можно запрашивать дополнительные разрешения.
Зачем изучать JavaScript?
JavaScript является одним из 3 языков все веб-разработчики должны узнать:
1. HTML Определение содержимого веб-страниц
2. CSS Указание макета веб-страниц
3. JavaScript Программирование поведения веб-страниц
Веб-страницы не являются единственным местом, где используется JavaScript. Многие настольные и серверные программы используют JavaScript. Node. js является наиболее известным. Некоторые базы данных, такие как MongoDB и CouchDB, также используют JavaScript в качестве языка программирования.
Проблемы
Связанные с безопасностью в JavaScript неприятности — использование так называемой атаки типа XSS. В её основе лежит внедрение скрипта в тело страницы, которая отображается пользователю. Код может получить права текущего посетителя и использовать их во вред, например, похитить личные данные.
Что такое куки и JavaScript? Куки — небольшая часть данных, которая отправляется веб-приложением на компьютер пользователя. Применяется для идентификации посетителей, записи их предпочтений или просто для хранения настроек сайта. Это могут использовать и злоумышленники с помощью JavaScript. Получив доступ к кукис, хакер может авторизоваться на сайте под профилем пользователя и похитить личные данные. Клиентское приложение, написанное на JavaScript, может подвергнуться обратной разработке, неправильно проходить авторизацию. Поэтому JavaScript не предоставляет средств по обеспечению достойного уровня безопасности.
Вопросы уязвимости и возникающих ошибок могут происходить и не по вине JavaScript. Многие браузеры содержат потенциальные «дыры» в своем коде. А JavaScript очень часто применяется лишь как инструмент их использования.
Нередко в Сети можно встретить вопрос от пользователей соцсетей: что такое JavaScript error «Вконтакте»? Это довольно распространённая проблема. Ее корень может скрываться в старом ПО, кеше или же в присутствии вирусов на компьютере. Для лечения нужно попробовать очистить кеш, обновить Java и Flash на ПК. Также очень часто люди интересуются тем, что такое JavaScript void 0. Если говорить простым языком, то веб-разработчик ввиду каких-то причин решил сохранить активность и деятельность какой-либо ссылки, при этом оставляя за ней возможность обрабатывать события, например, клик по ней.
- https://FB.ru/article/336429/chto-takoe-javascript-istoriya-poyavleniya-i-osnovnyie-osobennosti
- https://gabdrahimov.ru/javascript
- https://learn.javascript.ru/intro
- https://html5css.ru/js/default.php