Что такое javascript void

Что такое javascript void

The void operator evaluates the given expression and then returns undefined. If you have pass 0 as the unary expression operand to the void operator, JavaScript coerces 0 to "false" and returns, but void doesn’t care and simply returns undefined, which means "do nothing" . Put them together and you have composed a way to programmatically "do nothing" when a link is clicked. JavaScript Void(0) is often used when, inserting an expression into a web page may produce an unwanted side-effect.

You may occasionally encounter an HTML document that uses href="JavaScript:Void(0);" within an element.

A common usage of JavaScript:Void(0) is with hyperlinks. Usually, when the user clicks a link on a page a new page loads, but this is not always the desired course of action. For example, when the user clicks a link on a page, you might want to update the value of a field in a form or the value of a variable. To prevent a page from reloading when a link is clicked, the void(0) function is used.

example

output

When you click on the above link. Even though the code within it specifies to display a message in an alert box (and this action does take place), the page will reload automatically.

To prevent the page reloading, we can use JavaScript:void(0); within the anchor link.

output

When you run the above example, you can see a message is displayed in an alert box as intended and void(0) prevents the page from reloading . So the void operator can be useful when you need to call another function that may have otherwise resulted in an unwanted page refresh.

Поиск по форуму
Расширенный поиск
К странице.

Илья Кантор, 22 мая 2009 — 15:08

Описание, примеры

Оператор void вычисляет выражение и возвращает undefined.

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

Иногда вызов void(0) используют для получения undefined . В этом случае можно вместо void(0) использовать просто undefined .

При использовании протокола "javascript:(URI)", браузер выполняет код URI и заменяет содержимое документ на возвращенное значение, если оно не undefined .

Поэтому javascript-вызовы заворачивают в void . Особенно часто это делают в букмарклетах.

Кстати, использование протокола javascript: не рекомендуется, так как в современном javascript обычно есть лучшие альтернативы, например события.

См. также

  • Букмарклеты и правила их написания /Статья/
  • Почему — плохо /book/
  • Выражения /Стандарт языка/

Приведенный пример использования совершенно невнятный!
"Браузер выполняет код [javascript. ] и заменяет содержимое полученным значением, если оно НЕ(!) undefined. ПОЭТОМУ(?!) javascript вызовы заворачивают в void. Почему "поэтому"? Ведь сначала сказано, что браузер использует как раз-таки определенное в ходе вычислений значение выражения.

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

JavaScript Класс языка Тип исполнения интерпретация, трансляция в байт-код Java [1] , JIT в машинные коды [2] Появился в 1995 Автор Брендан Эйх Расширение файлов .js Выпуск ECMAScript 2016 [Спецификация 1] (14 июня 2016) Тестовая версия (27 июня 2010) Система типов динамическая, утиная Основные реализации SpiderMonkey, Rhino, KJS (JavaScript) ( англ. ) , JavaScriptCore, V8 Испытал влияние Lua, Self [3] , Си, Scheme [3] , Perl [3] , Python, Java [3] , AWK [3] , HyperTalk [3] Повлиял на Objective-J, Dart, TypeScript
Читайте также:  После наклейки стекла на смартфон появилось пятно
JavaScript
MIME-тип text/javascript, application/javascript [4] [5]
Разработчик Брендан Айк
Тип формата текстовый файл с исходным кодом
Расширен из ECMAScript

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам [7] .

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке [

Название «JavaScript» является зарегистрированным товарным знаком корпорации Oracle в США [9] .

Содержание

История [ править | править код ]

Предпосылки [ править | править код ]

В 1992 году компания Nombas (впоследствии приобретённая Openwave [en] ) начала разработку встраиваемого скриптового языка Cmm (Си-минус-минус), который, по замыслу разработчиков, должен был стать достаточно мощным, чтобы заменить макросы, сохраняя при этом схожесть с Си, чтобы разработчикам не составляло труда изучить его [10] . Главным отличием от Си была работа с памятью. В новом языке всё управление памятью осуществлялось автоматически: не было необходимости создавать буфера, объявлять переменные, осуществлять преобразование типов. В остальном языки сильно походили друг на друга: в частности, Cmm поддерживал стандартные функции и операторы Си [11] . Cmm был переименован в ScriptEase , поскольку исходное название звучало слишком негативно, а упоминание в нём Си «отпугивало» людей [10] [12] . На основе этого языка был создан проприетарный продукт CEnvi . В конце ноября 1995 года Nombas разработала версию CEnvi , внедряемую в веб-страницы. Страницы, которые можно было изменять с помощью скриптового языка, получили название Espresso Pages — они демонстрировали использование скриптового языка для создания игры, проверки пользовательского ввода в формы и создания анимации. Espresso Pages позиционировались как демоверсия, призванная помочь представить, что случится, если в браузер будет внедрён язык Cmm . Работали они только в 16-битовом Netscape Navigator под управлением Windows [13] .

JavaScript [ править | править код ]

Перед Бренданом Эйхом, нанятым в компанию Netscape 4 апреля 1995 года [15] , была поставлена задача внедрить язык программирования Scheme или что-то похожее в браузер Netscape. Поскольку требования были размыты, Эйха перевели в группу, ответственную за серверные продукты, где он проработал месяц, занимаясь улучшением протокола HTTP [15] . В мае разработчик был переброшен обратно, в команду, занимающуюся клиентской частью (браузером), где он немедленно начал разрабатывать концепцию нового языка программирования. Менеджмент разработки браузера, включая Тома Пакина (Tom Paquin), Михаэля Тоя ( англ. ) , Рика Шелла (Rick Schell), был убеждён, что Netscape должен поддерживать язык программирования, встраиваемый в HTML-код страницы [16] .

Помимо Брендана Эйха, в разработке участвовали [15] сооснователь [17] Netscape Communications Марк Андрессен и сооснователь Sun Microsystems Билл Джой: чтобы успеть закончить работы над языком к релизу браузера, компании заключили соглашение о сотрудничестве в разработке [18] . Они ставили перед собой цель обеспечить «язык для склеивания» составляющих частей веб-ресурса: изображений, плагинов, Java-апплетов, который был бы удобен для веб-дизайнеров и программистов, не обладающих высокой квалификацией [15] .

Читайте также:  Как вытянуть фигуру в фотошопе

Первоначально язык назывался Mocha [19] [20] [21] , затем он был переименован в LiveScript [21] [22] и предназначался как для программирования на стороне клиента, так и для программирования на стороне сервера (там он должен был называться LiveWire) [18] . На синтаксис оказали влияние языки Си и Java, и, поскольку Java в то время было модным словом [15] [18] , 4 декабря 1995 года LiveScript переименовали в JavaScript [23] , получив соответствующую лицензию у Sun. Анонс JavaScript со стороны представителей Netscape и Sun состоялся накануне выпуска второй бета-версии Netscape Navigator [15] . В нём декларируется, что 28 лидирующих ИТ-компаний выразили намерение использовать в своих будущих продуктах JavaScript как объектный скриптовый язык с открытым стандартом [24] .

В 1996 году компания Microsoft выпустила аналог языка JavaScript, названный JScript. Анонсирован этот язык был 18 июля 1996 года [25] . Первым браузером, поддерживающим эту реализацию, был Internet Explorer 3.0.

По инициативе компании Netscape [26] [27] была проведена стандартизация языка ассоциацией ECMA. Стандартизированная версия имеет название ECMAScript, описывается стандартом ECMA-262. Первой версии спецификации соответствовал JavaScript версии 1.1, а также языки JScript и ScriptEasy [10] [18] .

Популярность [ править | править код ]

В статье «The World’s Most Misunderstood Programming Language Has Become the World’s Most Popular Programming Language» [28] (с англ. — «Самый неправильно понятый язык программирования в мире стал самым популярным в мире языком программирования») Дуглас Крокфорд утверждает, что лидирующую позицию JavaScript занял в связи с развитием AJAX, поскольку браузер стал превалирующей системой доставки приложений. Он также констатирует растущую популярность JavaScript, то, что этот язык встраивается в приложения, отмечает значимость языка.

Согласно TIOBE Index, базирующемуся на данных поисковых систем Google, MSN, Yahoo!, Википедия и YouTube, в апреле 2015 года JavaScript находился на 6 месте (год назад — на 9) [29] .

По данным Black Duck Software ( англ. ) [30] , в разработке открытого программного обеспечения доля использования JavaScript росла. 36 % проектов, выпуски которых состоялись с августа 2008 по август 2009 гг., включают JavaScript, наиболее часто используемый язык программирования с быстрорастущей популярностью. 80 % открытого программного обеспечения использует Си, C++, Java, Shell и JavaScript. При этом JavaScript — единственный из этих языков, чья доля использования увеличилась (более чем на 2 процента, если считать в строках кода) [31] .

JavaScript является самым популярным языком программирования, используемым для разработки веб-приложений на стороне клиента ( англ. ) [32] [33] .

Возможности языка [ править | править код ]

JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование [34] [35] обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания [36] — что придаёт языку дополнительную гибкость.

Читайте также:  Оператор билайн астрахань номер

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

В языке отсутствуют такие полезные вещи [37] , как:

2] , которая бы отслеживала зависимости и автоматически устанавливала их.

Семантика и синтаксис [ править | править код ]

Синтаксис языка JavaScript во многом напоминает синтаксис Си и Java, семантически же язык гораздо ближе к Self, Smalltalk или даже Лиспу [28] [38] [Спецификация 2] .

  • все идентификаторы регистрозависимы,
  • в названиях переменных можно использовать буквы, подчёркивание, символ доллара, арабские цифры,
  • названия переменных не могут начинаться с цифры,
  • для оформления однострочных комментариев используются // , многострочные и внутристрочные комментарии начинаются с /* и заканчиваются */ .

Структура языка [ править | править код ]

Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей [39] [40] [41] [42] :

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

Объектную модель документа иногда рассматривают как отдельную от JavaScript сущность [43] [44] [Спецификация 3] , что согласуется с определением DOM как независимого от языка интерфейса документа [45] [

3] . В противоположность этому ряд авторов находит BOM и DOM тесно взаимосвязанными [46] [47] .

Ядро [ править | править код ]

ECMAScript не является браузерным языком и в нём не определяются методы ввода и вывода информации [39] . Это, скорее, основа для построения скриптовых языков. Спецификация ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова, операторы, объекты, регулярные выражения, не ограничивая авторов производных языков в расширении их новыми составляющими.

Объектная модель браузера [ править | править код ]

Объектная модель браузера — браузер-специфичная часть языка [41] [48] , являющаяся прослойкой между ядром и объектной моделью документа [49] . Основное предназначение объектной модели браузера — управление окнами браузера и обеспечение их взаимодействия. Каждое из окон браузера представляется объектом window , центральным объектом DOM. Объектная модель браузера на данный момент не стандартизирована [41] [50] , однако спецификация находится в разработке WHATWG [49] [Спецификация 4] и W3C [40] [Спецификация 5] .

Помимо управления окнами, в рамках объектной модели браузера, браузерами обычно обеспечивается поддержка следующих сущностей [49] [50] :

  • управление фреймами,
  • поддержка задержки в исполнении кода и зацикливания с задержкой,
  • системные диалоги,
  • управление адресом открытой страницы,
  • управление информацией о браузере,
  • управление информацией о параметрах монитора,
  • ограниченное управление историей просмотра страниц,
  • поддержка работы с HTTP cookie.

Объектная модель документа [ править | править код ]

Объектная модель документа — интерфейс программирования приложений для HTML и XML-документов [51] . Согласно DOM, документ (например, веб-страница) может быть представлен в виде дерева объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции:

  • генерация и добавление узлов,
  • получение узлов,
  • изменение узлов,
  • изменение связей между узлами,
  • удаление узлов.

Встраивание в веб-страницы [ править | править код ]

Расположение внутри страницы [ править | править код ]

Для добавления JavaScript-кода на страницу можно использовать теги [Спецификация 6] , которые рекомендуется, но не обязательно, помещать внутри контейнера . Контейнеров

Ссылка на основную публикацию
Что значит спящий режим компьютера
В операционной системе Windows есть несколько режимов выключения компьютера – это обыкновенный режим, (который полностью выключает PC), режим гибернации и...
Чем открыть файл с расширением dat
После установки каких-нибудь программ, получения почты при помощи почтовых клиентов, на компьютере создаются .dat файлы. Чаще всего они почти не...
Чем отличается frontend от backend
Переводы , 13 апреля 2017 в 19:58 Мая Устинова Вы наверняка уже слышали эти модные в сфере программирования слова «фронтенд»...
Что значит сторнировать документ
Сто́рно (итал. storno — перевод на другой счёт, отвод; от stornare — поворачивать обратно) — в общем смысле возврат к...
Adblock detector