Developed by Netscape for their browser in 1995, JavaScript soon saw its implementation rolled out by Microsoft into Internet Explorer as "JScript". Nearly all browser vendors now support the core language ("ECMAScript"), with each company adding its own functionality on top.
JavaScript is generally interpreted by a web browser, but it doesn't have to; it has in fact been used for years by sysadmins alongside VBScript to manage local Windows networks of PCs.
Modern websites relying so heavily on this scripting language, companies added "JIT" compilation to their browser (most notably Google Chrome's V8 engine). Once downloaded from the web server, the code is compiled into machine code (executes much faster).
Here's the full listing of tutorials: read through it for a great overview, or refresh your memory. For in-depth info, just click on the corresponding link!
The web browser window object and document object ("DOM") include methods and functions to manipulate the content of the page and interact with its display, timing, etc.
clearInterval() stops recurring timers stored in variables and started with setInterval(), by name.
clearTimeout() cancels a timer created with setTimeout(), using its variable name.
getElementById() takes an id attribute as argument, and returns the matching element, if any.
getElementsByTagName() takes an HTML tag name as argument, and returns all matching nodes.
setInterval() creates a recurring timer (in loop), that triggers code at regular millisecond intervals.
setTimeout() creates a countdown timer that will run code or a function once the interval elapses.
The String object, designed to hold text, is the most common data type since most scripts handle strings: HTML tags, web page content, or form fields values filled-in by users.
Declare a string in four different ways: constructor, literal, toString(), or as returned result.
The length property counts the number of characters, and can be used as position index.
Methods
charAt() takes a position index as argument, and returns the character if found there in a string.
charCodeAt() returns the unicode value of the character it found at the position index supplied.
concat() joins together pieces of text passed as argument, and adds them to another string.
fromCharCode() returns the string corresponding to the unicode value(s) passed as argument.
indexOf() is the quickest way to check if a string contains another one (case-sensitive search).
lastIndexOf() returns the character position index of the last instance of a string found in another.
match() returns an array of matches to a regular expression pattern applied on a string.
replace() substitutes all RegEx matches it finds with a another string passed as argument.
search() looks for a regular expression in strings, and returns first match's character position index.
slice() extracts a substring from a string, with optional negative index (to start from the end!)
split() uses the string you pass as argument to separate text into an array of strings.
substring() lets you extract custom-length strings from inside another piece of text.
toLowerCase() returns an all-minuscules copy of a string ("abc").
toUpperCase() returns a fully capitalized copy of a string ("ABC").
The RegExp object, initially the least intuitive topic to understand, is a most powerful and flexible technique you'll end up using it all the time for text manipulation and form validation.
The Array object stores multiple values of same different type in a single variable; JavaScript has lots of methods to handle their elements, easily extended with custom functions.
The Number object stores numeric values, both integers and floating points. Numbers evaluate also as boolean (zero and negative numbers as false, positive numbers as true).
The Date object handles date and time related measurements, based on the client computer's settings. Use server-side languages like PHP or ASP.NET for predictable time zones.
getMonth() returns the current month as a zero-based index (January = zero, December = 11).
JavaScript's unary negation operator (exclamation mark) returns the opposite of the expression that follows, if it were evaluated as a boolean value. Tip: two exclamation points convert to boolean!