В следующем JavaScript-коде есть знак доллара ($
). Что это значит?
$(window).bind('load', function() {
$('img.protect').protectImage();
});
В следующем JavaScript-коде есть знак доллара ($
). Что это значит?
$(window).bind('load', function() {
$('img.protect').protectImage();
});
Ваш фрагмент кода выглядит так, как он ссылается на методы из одной из популярных библиотек JavaScript (jQuery, ProtoType, mooTools и т.д.).
Там ничего загадочного в использовании $
в JavaScript. $
- это просто действительный идентификатор JavaScript.
JavaScript позволяет использовать верхние и нижние буквы, цифры и $
и _
. $
должен был использоваться для машинных переменных (например, $0001
).
Прототип, jQuery и большинство javascript-библиотек используют $
как основной базовый объект (или функцию). Большинство из них также имеют возможность отказаться от $
, чтобы его можно было использовать с другой библиотекой, которая его использует. В этом случае вы используете jQuery
вместо $
. Фактически, $
является просто ярлыком для jQuery
.
Это скорее всего jQuery код (точнее, JavaScript с использованием библиотеки jQuery).
$
представляет функцию jQuery и на самом деле является сокращенным псевдонимом для jQuery
. (В отличие от большинства языков символ $
не зарезервирован и может использоваться как имя переменной.) Обычно он используется как селектор (т.е. функция, возвращающая набор элементов, найденных в DOM).
Из другого ответа:
Немного истории
Помните, в $
нет ничего особенного. Это имя переменной, как и любое другое. В прежние времена люди писали код, используя document.getElementById. Поскольку JavaScript чувствителен к регистру, при написании document.getElementById
было нормально ошибиться. Должен ли я заглавными буквами 'b'
из 'by'
? Должен ли я заглавная 'i'
из Id?
Вы получаете дрейф. Поскольку функции являются первоклассными гражданами в JavaScript, вы всегда можете сделать это:
var $ = document.getElementById; //freedom from document.getElementById!
Когда появилась библиотека прототипов, они назвали свою функцию, которая получает элементы DOM, как '$'
. Почти все библиотеки JavaScript скопировали эту идею. Прототип также представил функцию $$
для выбора элементов с помощью CSS-селектора.
jQuery также адаптировал функцию $
function, но расширил ее, чтобы он мог принимать всевозможные "селекторы" для получения нужных вам элементов. Теперь, если вы уже используете Prototype в своем проекте и хотите включить jQuery, у вас возникнет проблема, так как '$'
может ссылаться на реализацию Prototype или реализацию jQuery. Вот почему jQuery имеет опцию noConflict, так что вы можете включить jQuery в ваш проект, который использует Prototype и медленно переносить ваш код. Я думаю, что это был блестящий шаг со стороны Джона! :)
$()
- сокращенная версия jQuery()
, используемая в jQuery Library.
Как говорят все остальные ответы; это может быть почти что угодно, но обычно это "JQuery".
Однако в ES6 это оператор строковой интерполяции в шаблон "literal" , например.
var s = "new" ; // you can put whatever you think appropriate here.
var s2 = `There are so many ${s} ideas these days !!` ; //back-ticks not quotes
console.log(s2) ;
результат:
В наши дни так много новых идей!
В дополнение к приведенным выше ответам, $
не имеет особого значения в javascript, его можно использовать в именах объектов. В jQuery он просто используется как псевдоним для объекта jQuery и функции jQuery().
Однако вы можете столкнуться с ситуациями, когда вы хотите использовать его в сочетании с другой JS-библиотекой, которая также использует $, что приведет к конфликту именования. В JQuery есть метод именно по этой причине, jQuery.noConflict()
.
Вот пример из документа jQuery:
<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
$.noConflict();
// Code that uses other library $ can follow here.
</script>
В качестве альтернативы вы также можете использовать подобный
(function ($) {
// Code in which we know exactly what the meaning of $ is
} (jQuery));
Из документации jQuery, описывающей объект ядра jQuery:
Многие разработчики префикс a $для имени переменных, которые содержат jQuery объектов, чтобы помочь дифференцировать. Нет ничего волшебного в том, что эта практика - это просто помогает некоторым людям отслеживать, что переменные содержат.