What is the $ symbol used for in JavaScript
JavascriptJqueryJavascript Problem Overview
I am a JavaScript learner and have been researching this matter, but with no success. What is the $
symbol used for in JavaScript besides regular expressions? Any resources or readings regarding this would be appreciated. Thanks.
Javascript Solutions
Solution 1 - Javascript
It doesn't mean anything special.
But because $
is allowed in identifier names, many Javascript libraries have taken to using $
as the "central" interface to them, or at least as a shortcut for accessing their functionality.
For example, if you're using jQuery and you say $("div")
, this is a call to the $
function with argument "div". When you say $.post()
, it's calling the post
method on the $
object (Javascript is nice in that functions are first-class objects).
Solution 2 - Javascript
I became acquainted with it in JavaScript when I started using the Prototype framework. In Prototype, $
is simply the name of an often used function (very, very much simplified - a short for document.getElementById
). Personally, I like the terseness of it.
Afaik, it's not used for anything by the language itself.
For what it's worth, Douglas Crockford advises against using $
in the variable/function names you write:
> Do not use $ (dollar sign) or
> (backslash) in names.
Adding another, rather opinionated, quote from Mr. Crockford's talk "And Then There Was JavaScript":
> Dollar sign was added to the language > specifically for use by code > generators and macro processes, so if > you have machines writing code then > the machines need to be confident that > the variables that they create will > not conflict with variables that the > humans are going to create. To > distinguish them, we’ll allow the > machines to use dollar sign. Some of > the ninjas found out about that and > thought oh, dollar sign, I can use > dollar sign as a function name, so > they’re out there doing that. And it > looks stupid. I mean, look at a > program with dollar sign.
Solution 3 - Javascript
If you are asking why some variables and function names start with $
, then that is simply a convention when using jQuery and/or AngularJS.
In code that uses jQuery, $
is often used as a prefix for variables that contain jQuery selections.
e.g. var $container = $('.container');
.
In AngularJS, they use the $
prefix to mean "core Angular functionality". That way, you know which methods and services are added by the framework, and which are custom to your application.