13

Какое значение имеет символ доллара ($) в JavaScript? За что он отвечает и где его уместно использовать?

AseN
  • 13,629

6 Answers6

15

Ничего особенного, просто этот символ может использоваться в идентификаторах, в отличие от многих других языков. То есть abc$def -- законное имя переменной или функции, например.

Вы часом не спутали javascript с библиотекой jQuery? В ней $ используется под имя глобальной переменной. Снова-таки, никакой магии, просто имя переменной.

VladD
  • 206,799
11

Его можно использовать как короткое и нетривиальное имя для переменной. Это и делается во многих JavaScript-фреймворках. Например jQuery и Prototype.

Lucky
  • 2,391
  • 6
    а ещё ссылки на JQuery object принято именовать начиная с этого символа:
    var $div = $('#divId');
    
    – Spectre Jan 07 '13 at 14:07
  • 2
    неплохо бы снабдить ответ примерами, а то как-то больно сухо – Anatol Jul 20 '17 at 08:34
7

В JAVASCRIPT знак $ используется для интерполяции выражений:

let data = [11, 22, 33];
const str = `Number ${data[0]} from data`;
console.log(str); // Number 11 from data

(Только замените ' на `)

vlad
  • 71
5

это обычный символ.

var one$two = true;
alert(one$two);

Также знак доллара используется для получения доступа к главному объекту jQuery, если подключена эта библиотека.

Или $(id) в prototype означает

document.getElementById(id)
lampa
  • 18,094
  • 2

    Также знак доллара используется для получения доступа к главному объекту jQuery

    не хочу показаться занудой, но всё таки "к функции jQuery"

    – Spectre Jan 07 '13 at 14:11
  • @Spectre Ну я же не указал, как именно :-) – lampa Jan 07 '13 at 14:17
  • 6
    @Spectre Не хочу показаться занудой, но функции в JavaScript являются объектами https://developer.mozilla.org/ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function – Lucky Jan 07 '13 at 14:32
  • 2

    Не хочу показаться занудой

    у вас это не получилось

    – Spectre Jan 07 '13 at 14:39
  • @Spectre короче говоря у Object глобального объекта-класса стандартного объекта есть метод toString() который наследуется всеми объектами и вызывается интерпретатором при вызове valueOf первым и вы можете его переопределить: $.prototype.toString = function(){return "В JS почти всё объекты";}; – Rules Jan 07 '13 at 15:02
  • Ваш пример выводит всего лишь исходный код функции. Я говорю о том, что фактически функции являются объектами. Введите в Вашей консоли $. и получите целую кучу методов объекта $ – Lucky Jan 07 '13 at 15:10
  • Короче читайте JavaScript The Definitive Guide желательно 6th edition я и сам не хотел читать: Мой вопрос на hashcode но теперь признаю это единственная лучшая книга по JS – Rules Jan 07 '13 at 15:11
  • @Lucky я случайно написал $.prototype.toString... а надо $.toString... (после подключения библиотеки написать) теперь введите $ в консоль :) – Rules Jan 07 '13 at 15:15
  • @Rules Мой предыдущий комментарий был обращен к @Spectre, а не к Вам. – Lucky Jan 07 '13 at 15:22
0
<form>
User: <input name="username" type="text"><br>
Email: <input name="email" type="text">
</form>

<script>
$('[name="username"]').val(app.user.username);
$('[name="email"]').val(app.user.email);
</script>

тут прикол в том что не надо использовать

document.getElementsByName('username')
document.getElementsByName('email')

а можно просто указать $ для получения доступа к главному объекту jQuery (как было сказано выше)

-6
<form>
User: <input name="username" type="text"><br>
Email: <input name="email" type="text">
</form>

<script>
$('[name="username"]').val(app.user.username);
$('[name="email"]').val(app.user.email);
</script>

Вот вам хороший пример использования $! Думаю все стало ясно…

  • 2
    и чем же в вашем коде является $? пример чего вы привели? у меня, например в хроме, ваш код кидает исключение: Uncaught TypeError: Cannot read property 'val' of null, либо как вариант: Object doesn't support property or method 'val' – Grundy May 22 '16 at 11:15
  • 2
    Постарайтесь писать более развернутые ответы. Поясните, на чем основано ваше утверждение? – Nicolas Chabanovsky May 22 '16 at 17:17