- inbuilt primitive types such as integer and string;
- arrays, lists, and records/structs;
- operators for purposes such as assignment, addition, subtraction, multiplication, division (including integer division), comparison and Boolean expressions;
- selection by if and case/switch;
- procedures and functions (and their parameters passed by value or by reference: References are passed by value. If you pass a reference to an object, you are passing a copy of that reference but you can then change the contents of the referenced object. See Alnitak's answer on stackoverflow.);
- inbuilt routines e.g. for string manipulation;
- other means of splitting up and reusing the code such as by classes and files: see local storage;
- saving and loading data and database access;
- event handling: the output() function in our test script on the following page is assigned to the onclick event of the button;
- networking capabilities.
Follow the numbered links to pages on the HTML5 canvas and widgets, jQuery widgets, local storage and sets.