В чем смысл знака "$" в JavaScript?

В следующем JavaScript-коде есть знак доллара ($). Что это значит?

$(window).bind('load', function() {
    $('img.protect').protectImage();
});

Ответ 1

Ваш фрагмент кода выглядит так, как он ссылается на методы из одной из популярных библиотек JavaScript (jQuery, ProtoType, mooTools и т.д.).

Там ничего загадочного в использовании $ в JavaScript. $ - это просто действительный идентификатор JavaScript.

JavaScript позволяет использовать верхние и нижние буквы, цифры и $ и _. $ должен был использоваться для машинных переменных (например, $0001).

Прототип, jQuery и большинство javascript-библиотек используют $ как основной базовый объект (или функцию). Большинство из них также имеют возможность отказаться от $, чтобы его можно было использовать с другой библиотекой, которая его использует. В этом случае вы используете jQuery вместо $. Фактически, $ является просто ярлыком для jQuery.

Ответ 2

Это скорее всего jQuery код (точнее, JavaScript с использованием библиотеки jQuery).

$ представляет функцию jQuery и на самом деле является сокращенным псевдонимом для jQuery. (В отличие от большинства языков символ $ не зарезервирован и может использоваться как имя переменной.) Обычно он используется как селектор (т.е. функция, возвращающая набор элементов, найденных в DOM).

Ответ 3

Из другого ответа:

Немного истории

Помните, в $ нет ничего особенного. Это имя переменной, как и любое другое. В прежние времена люди писали код, используя 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 и медленно переносить ваш код. Я думаю, что это был блестящий шаг со стороны Джона! :)

Ответ 4

$() - сокращенная версия jQuery(), используемая в jQuery Library.

Ответ 5

Как говорят все остальные ответы; это может быть почти что угодно, но обычно это "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) ;

результат:

В наши дни так много новых идей!

Ответ 6

В дополнение к приведенным выше ответам, $ не имеет особого значения в 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));

Ссылка: https://api.jquery.com/jquery.noconflict/

Ответ 7

Из документации jQuery, описывающей объект ядра jQuery:

Многие разработчики префикс a $для имени переменных, которые содержат jQuery     объектов, чтобы помочь дифференцировать. Нет ничего волшебного в том, что     эта практика - это просто помогает некоторым людям отслеживать, что     переменные содержат.