===== Javascript Cheat Sheet =====
This is a summarized form of the [[http://www.w3schools.com/js/default.asp | JavaScript Tutorial]].
For reference JavaScript specifications can be found [[http://developer.mozilla.org/en/JavaScript_Language_Resources | here]] .
==== What is Javascript ====
* JavaScript is the most popular scripting language on the internet and works in all major browsers.
* It is a lightweight, interpreted, object-oriented language that is embedded into webpages to add interactivity.
* JavaScript can read and write HTML page elements, react to events, validate data, create cookies.
* JavaScript was invented by Brendan Eich of Netscape but is now known officially as ECMAScript (current version is ECMA-262).
* A simple "Hello World" example
* JavaScript code may be located
* In the head - executed when called
* In the body - executed while loading
* In an external file called from either the head or the body e.g.
==== Basic Syntax ====
* JavaScript is case-sensitive.
* Statements may omit the final semi-colon but should not.
* Blocks may be grouped together using curly braces { }.
* JavaScript uses java-style comments: %%//%% and /* */.
* JavaScript variables are case-sensitive and must begin with a letter or underscore.
* Variables are automatically declared when first used but should be explicitly declared using e.g. var a = 5;
* JavaScript uses standard C/Java operators e.g. +-*/%, ++, +=, &&, ||, !, + (concatenation).
* JavaScript uses C/Java comparators >,>=,==, !=, a?b:c. It also uses === to test equality of value and type.
==== Basic Structures ====
* if {} else if {} else {}
* for (var=start;var%%<=%%end;var=var+inc) {}
* while (condition) {}
* do {} while (condition) ;
* //break// and //continue// both valid in a loop.
* for (element in array) {}
* for (property in object) {}
* switch (n) { case 1: stmt; break; default: stmt; }
* function name(var1,var2,...) {}
* \", \n, \t, \r, \', \&, \\
* with (object) { } changes default object for fields.
==== Events, Error Handling & Popups ====
* try { throw "errname"; } catch(err) {}
* onerror=handleErr; handleErr(msg,url,linenum)
* if handleErr returns false, browser displays a standard error message in the JavaScript console.
* an alert box just has an OK button - alert("msg")
* a confirm box returns true if the user clicks OK, false if he clicks cancel - confirm("msg")
* a prompt box allows the user to enter a value. It returns true if the user clicks OK, false if he clicks cancel - prompt("msg","defaultvalue");
* JavaScript functions can be registered to run on certain events (event="jscode" in an HTML element):
* onunload, onload (page or image), onresize, onabort
* onfocus, onblur, onclick, ondblclick
* onmouseover, onmouseout, onmousemove
* onchange, onsubmit, onreset, onselect
* onkeydown, onkeypress, onkeyup
* onmousedown, onmouseup
==== JavaScript Objects ====
* Objects have properties and methods.
* Objects can be created directly
personObj=new Object();
personObj.firstname="John";
personObj.newfirstname =
function (new_firstname)
{ this.firstname=new_firstname; }
* Objects can be created using a template
function person(firstname) {
this.firstname=firstname;
this.newfirstname =
function (new_firstname)
{ this.firstname=new_firstname; }
}
myFather=new person("John");
* Object methods can also be assigned by name e.g.
function person(firstname)
{
this.firstname=firstname;
this.newfirstname=newfirstname;
}
function newfirstname(new_firstname)
{ this.firstname=new_firstname; }
==== Predefined Objects ====
* String objects have a length property and methods including: indexOf, match, replace
* new Date() creates a Date object (with today's date).
* Date objects include methods: getTime(epoch), setFullYear, toUTCString, getDay, getHours
* Date objects can be compared using <, > .
* To declare an array var mycars=new Array("Saab","Volvo","BMW");
* Arrays have methods including: sort, concat, join.
* To sort an integer array, must use a function function intSort (a, b){ return a - b;}
* The Math object contains common math routines: round, random, e, pi etc.
* The RegExp object supports regexp creation and searching including methods: test (t/f), exec, compile (alter).
* HTML DOM objects allow access to browser and webpage.
==== Advanced JavaScript ====
* navigator.appName/appVersion contain the browser name and version.
* document.cookie allows read and write access to cookie so to set a cookie
function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" :
";expires="+exdate.toGMTString());
}
* The onsubmit event can be used to validate a form.
* document.img_name.src ="pic.gif" changes an image.
* To change the content of a block with a given id :
document.getElementById("block_id").innerHTML=txt;
* To set or clear a timed action:
var t=setTimeout("javascript statement",milliseconds);
clearTimeout(t);