Javascript is the programming language commonly used for client-side (in browser) functionality. ECMA International defines the ECMAScript standard (synonymous with Javascript), the most widely supported among browsers being ECMA-262.
Javascript Design Patterns by Addy Osmani
"JavaScript has certain characteristics that make it very different than other dynamic languages, namely that it has no concept of threads. Its model of concurrency is completely based around events. This makes it rather different than other general purpose dynamic programming languages like Ruby and Python. At least for certain classes of problems, I’ve found JavaScript to be much easier to program in—for example when writing an IRC server." - Ryan Dahl1
Model-View-Controller (and the plethora of related concepts) aim to create a pragmatic software architecture in Javascript applications.
TodoMVC is an example application built with different MV* frameworks to introduce their respective internals.
Backbone Fundamentals by Addy Osmani covers MV* historically as well as practically.
React is a view library. It introduced the concept of the virtual DOM — keeping track of the view's DOM and when changes are to be made to the view, only the atomic DOM manipulation methods are triggered on the existing elements, not a full re-render. See also Flux and Relay/GraphQL.
When rendering HTML via Javascript, a templating engine can be used to separate logic and markup. Mustache is a great cross-language template engine.
jQuery Cross-browser DOM manipulation, event handling, animation, and Ajax.
D3 Data-based DOM manipulation. Three little circles
Modernizr HTML and CSS feature detection library.
ScrollMagic Scroll interaction jQuery plugin.
Select2 Select box replacement jQuery plugin.