Что такое JavaScript (JS)?

JavaScript

Вступление

JavaScript (JS) — это интерпретируемый язык программирования высокого уровня, который также считается динамическим, слабо типизированным, основанным на прототипах и мультипарадигмальным. Наряду с языком гипертекстовой разметки (HTML) и каскадными таблицами стилей (CSS), это одна из трех основных технологий Всемирной паутины (WWW). Его характеристики позволяют создавать динамические веб-страницы, которые могут быть интерактивными с пользователями. Его можно найти на большинстве современных веб-сайтов, в то время как все современные браузеры поддерживают его без использования какого-либо плагина с помощью встроенного движка JavaScript. Каждый JS Engine представляет отдельную реализацию JS и все основаны на спецификации ECMAScript, при этом некоторые не поддерживают спецификацию полностью, в то время как многие другие поддерживают ее полностью, а другие функции за ее пределами.

Из-за своей мультипарадигмальной характеристики JS поддерживает управляемые событиями, функциональные и императивные (включая объектно-ориентированные и основанные на прототипах) стили программирования; делая это довольно разнообразным. Его API способен работать с текстом, массивами, датами, регулярными выражениями и базовыми манипуляциями с объектной моделью документа (DOM); однако он не способен выполнять какие-либо операции ввода / вывода (I / O); такие как сеть, хранилище или графические объекты. Это связано с тем, что сам язык не включает эти функции и вместо этого полагается на среду хоста, в которую он встроен для этих функций.

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

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

Характеристики

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

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

Его характеристика на основе прототипа позволяет ему быть объектно-ориентированным и почти полностью объектно-ориентированным. В языке объект спроектирован как ассоциативный массив, который был дополнен прототипом. С помощью этого метода каждое свойство ключа строки массива является свойством объекта, и их можно идентифицировать либо с помощью точечной нотации (object.property = 10), либо с помощью скобок (object [property] = 10). Эти свойства могут быть добавлены, восстановлены или удалены во время выполнения, и большинство из них можно перечислить с помощью цикла for-in для объекта. Следует отметить, что хотя это также определяется как объектно-ориентированная характеристика, JS использует прототипы для достижения этой цели, в отличие от других объектно-ориентированных языков, которые используют классы для наследования. Это означает, что функции удваиваются как конструкторы объектов для создания прототипов и как методы для управления свойствами прототипов.

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

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

Приложения и использование

Наиболее распространенное использование JavaScript сегодня — это добавление клиентского поведения в HTML; процесс, который теперь обычно называют динамическим HTML (DHTML). Это достигается тем, что JS-скрипты включаются или внедряются в HTML-страницы и взаимодействуют с DOM страницы. Некоторыми простыми примерами этого приложения являются загрузка нового содержимого страницы или отправка данных на сервер через Ajax, анимация элементов страницы, которая может включать в себя их постепенное исчезновение, изменение их размера или перемещение, а также проверку пользовательского ввода веб-формы. обеспечить его приемлемость перед использованием.

Такое использование стало очень распространенным явлением не только ради пользователя и удобства использования, но и из-за того, насколько быстро они могут быть обработаны. Это потому, что JS поддерживается всеми веб-браузерами и, следовательно,; эти реализации могут быть быстро разрешены на компьютере клиента без необходимости взаимодействия с сервером. Это обеспечивает более отзывчивый и желательный пользовательский опыт только из-за некоторых простых вещей, которые могут быть достигнуты. Если заглянуть в сферу более сложных вещей, то ценность JavaScript можно по-настоящему увидеть; например, HTML не имеет средств обнаружения действий пользователя, таких как отдельные нажатия клавиш. Таким образом, это JavaScript, который используется для достижения этого в таких приложениях, как Gmail, который имеет большую часть своей пользовательской логики и функции отправки сообщений, выполняемые JS.

Однако следует отметить, что, поскольку JavaScript способен работать в нескольких средах, нужно быть внимательным и убедиться, что его сценарий работает в нескольких браузерах посредством тестирования и отладки. Например, интерфейсы DOM для управления веб-страницами не являются частью спецификации ECMAScript или самого JavaScript. Фактически, это определяется другой спецификацией в рамках World Wide Web Consortium (W3C). Таким образом, разработчики могут использовать совместимый со стандартами код, который также будет корректно выполняться для большинства браузеров или если он не выполнен, проверьте, чтобы браузер был способен к определенным функциям, и действуйте соответствующим образом, если это не так. Основываясь на этом, существуют некоторые другие случаи, когда сценарий может иметь некоторые проблемы, запущенные для пользователей, например, если они используют КПК или мобильный браузер, который не может выполнить JS, речевой браузер из-за некоторого нарушения зрения или по другой причине, старого или редкий браузер с незнакомой или неподдерживаемой поддержкой DOM, или они могут просто отключить JS в качестве меры предосторожности.

Безопасность

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

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

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

0 0 vote
Article Rating
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments