Href javascript void 0 что значит. Что означает "javascript: void (0)"? Что означает «javascript: void (0)»

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

Исторический семантический момент

Само по себе void означает "никуда", "ничего не делать" или, по смыслу JavaScript void, - undefined.

Применением ключевого слова void прославился язык программирования С/С++ в большей степени, чем другие языки (тогда еще локального) программирования. Но не только С/С++ декларировал отсутствие результата действия (функции) как данное особого рода.

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

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

Современные реалии интернет-программирования

В современной интернет-практике HTML/CSS:

  • код разметки;
  • форма представления информации в конкретном применении;
  • предмет анализа в том же конкретном применении.

Браузерный язык JavaScript:

  • логика и события;
  • алгоритм и функциональность;
  • отсутствие истории изменений (данные) и отката действий (алгоритм).

Термин void сохранил свое неопределенное значение до сих пор. В контексте JavaScript void приводит к значению undefined.

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

Область компетенции void и undefined

Обычно JavaScript void и значение undefined применяются в ссылках это частный вариант использования, при котором может быть выполнено действие, но браузеру будет известно обратное:

  • Действие не выполнено.
  • Продолжение за ним не должно следовать.
  • На самом деле сложность языка разметки HTML, его взаимосвязи с таблицами CSS и мощное развитие браузерного языка привели к обратному: JavaScript void 0, что значит или что не значит - браузера не касается.

    Разработчик может вкладывать собственный смысл, иное понимание ситуации. Он может ориентировать алгоритм, приводящий к вызову JavaScript void на что угодно. У разработчика есть синтаксис и базовый смысл от браузерного языка, остальное зависит от решаемой задачи, области ее компетенции и логики диалога с посетителем веб-ресурса.

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

    Проще предусмотреть набор действий для ориентации в ситуации, но до того, как можно будет пустить алгоритм дальше - заблокировать работу браузера в том или ином направлении.

    В дополнение к техническому ответу, javascript:void означает, что автор делает это неправильно.

    Нет веской причины использовать псевдо-URL javascript: (*). На практике это вызовет путаницу или ошибки, если кто-нибудь попробует такие вещи, как «ссылка на закладку», «открыть ссылку на новой вкладке» и т. Д. Это происходит довольно часто, когда люди привыкли к среднему клику для новых вкладок: он выглядит как ссылка, вы хотите прочитать ее на новой вкладке, но она оказывается не реальной ссылкой вообще, и дает нежелательные результаты, такие как пустая страница или ошибка JS при среднем нажатии.

    - это обычная альтернатива, которая может оказаться менее плохим. Однако вы должны помнить return false из обработчика событий onclick , чтобы предотвратить следование ссылки и прокрутку вверху страницы.

    В некоторых случаях может оказаться полезным место для ссылки на ссылку. Например, если у вас есть элемент управления, вы можете щелкнуть по нему, который открывает ранее скрытый , имеет смысл использовать для ссылки на него. Или, если есть не-JavaScript способ сделать то же самое (например, "thispage.php? Show = foo", который устанавливает foo, чтобы начать с), вы можете ссылаться на это.

    В противном случае, если ссылка указывает только на какой-то скрипт, это не ссылка и не должна быть помечена как таковая. Обычным подходом было бы добавить onclick к , или без href и каким-то образом стилизовать его, чтобы очистить его, вы можете щелкнуть по нему. Это то, что StackOverflow [сделал на момент написания; теперь он использует href="#" ].

    Недостатком этого является то, что вы теряете управление клавиатурой, так как вы не можете вставлять в span / div / bare-a или активировать его с пространством. Независимо от того, является ли это на самом деле недостатком, зависит от того, какое действие элемент должен предпринять. Вы можете с некоторым усилием попытаться имитировать взаимодействие с клавиатурой, добавив tabIndex к элементу и прослушивая нажатие клавиши Space. Но на 100% не воспроизводится реальное поведение браузера, не в последнюю очередь потому, что разные браузеры могут реагировать на клавиатуру по-другому (не говоря уже о невизуальных браузерах).

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

    (*: в создании сайтов, в любом случае. Очевидно, что они полезны для букмарклетов. javascript: псевдо-URL - это концептуальная странность: локатор, который не указывает на местоположение, а вместо этого вызывает активный код внутри текущего местоположения Они вызвали серьезные проблемы с безопасностью как для браузеров, так и для webapps и никогда не должны были быть изобретены Netscape.)

    Стоит отметить, что вы иногда видите void 0 при проверке неопределенного, просто потому, что для этого требуется меньше символов.

    Например:

    Something === undefined

    Something === void 0

    По этой причине некоторые методы минимизации заменяют неопределенный void 0.

    2018-12-04T00:00Z

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

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

    Click Me

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

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

    I am a useless link

    2018-12-11T00:00Z

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

    Print

    Почему нам нужно "href" то время как "onclick" может выполнить свою работу? Потому что, если мы опускаем "href" , когда пользователи наводят над текстом «Печать», курсор изменится на «I». Наличие "href" позволяет отображать курсор, как если бы это была гиперссылка: указывающая рука.

    PS: Существует два метода: 1. href="javascript:void(0);" и 2. href="#" - оба имеют тот же эффект. Но первый требует, чтобы JavaScript был включен в веб-браузере, а второй - нет. Таким образом, второе, похоже, более совместимо.

    2018-12-18T00:00Z

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

    Вы должны просто return false в событие onclick , например:

    hello

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

    hello

    2018-12-25T00:00Z

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

    Оператор void часто используется просто для получения undefined примитивного значения, обычно используя « void(0) » (что эквивалентно « void 0 »). В этих случаях глобальная переменная undefined может использоваться вместо этого (предполагается, что ей не присвоено значение, отличное от значения по умолчанию).

    Здесь приводится объяснение: оператор void .

    Причина, по которой вы хотите сделать это с помощью ссылки href состоит в том, что, как правило, URL-адрес javascript: перенаправляет браузер в текстовую версию результата оценки этого JavaScript. Но если результат не undefined , браузер остается на одной странице. void(0) - это просто короткий и простой скрипт, который оценивается как undefined .

    2019-01-01T00:00Z

    Веб-разработчики используют javascript:void(0) потому что это самый простой способ предотвратить поведение тега по умолчанию. void(*anything*) возвращает undefined и является ложным значением. и возврат значения фальши похоже на return false в событие onclick тега, которое предотвращает его поведение по умолчанию.

    Поэтому я думаю, что javascript:void(0) - это самый простой способ предотвратить поведение тега по умолчанию.

    Большинство браузеров не будут анализировать расширенный JavaScript в