# JavaScript/Advanced JavaScript
## Statements

The following statements allow the coder to specifically direct the process in alternative packages.

## DOM editing

Also see: Web_Design/Getting_to_know_the_Document_Object_Model_with_JavaScript

### Attributes selection

Finding names, identification, values, colors, and other settings is possible via JavaScript.

### Element selection

See also: Web_Design/JavaScript_Challenges
The code to seek an element via a collection of those elements present:
The code to add an element could be this (appending the body (HTML) element):
Note: this will not work in an XML document. XML documents don't have the HTML Body tag/element.
Activity: Make a Simple CAD

## JavaScript for XML

Resources: http://en.wikipedia.org/wiki/ECMAScript_for_XML

### XMLHttpRequest

See http://en.wikipedia.org/wiki/XMLHttpRequest

### AJAX

See also: Web_Design/AJAX_Challenges

### XSLT
## Client-side and user scripts
### Client-side

See http://en.wikipedia.org/wiki/Client-side_scripting

### Userscripts

Resources: http://userscripts.org/
See http://en.wikipedia.org/wiki/Greasemonkey

## REST servers and javavascript in http

Resources: http://rest.elkstein.org/2008/02/using-rest-in-javascript.html
See : Web_programming,_an_example

## Javascript Games and event tools
### Timers

JavaScript establishes two time oriented objects.
* setTimeout
* setInterval

### Events

The following gives an example of catching a key event to describe it's code (via a label). It's extremely simple and may only work in FireFox or something similar. Better snippets can easily be found to suit numerous purposes. Try this example if you're unsure what Unicode numbers follow your keyboard strokes.
A good detector is found below this page/link Detecting keystrokes. If you notice, it will operate differently in Firefox, Chrome, or IE, (for mathematical operators mostly).

## Maps, Drawing, Design
### Maps

Resources: https://developers.google.com/maps/documentation/javascript/tutorial
See http://www.wikihow.com/Geocode-an-Address-in-Google-Maps-Javascript

### Drawing
#### SVG

Resources: http://www.carto.net/svg/manipulating_svg_with_dom_ecmascript/ or
http://srufaculty.sru.edu/david.dailey/svg/SVG_serialize.html

## Browser identification
### Excluding IE

Internet Explorer will recognize a simple inclusion from within HTML comments:
Some logic is allowed through the use of gt for greater than (or lt for lower than):
This merely an HTML solution to include scripts that specifically apply within IE (or the opposite).

### Mozilla

Resources: JavaScript Guide

## Error handling

Resources: msdn.microsoft error handling examples

## Alternative ECMAscript languages
### ActionScript

ActionScript is the scripting language in use in Flash website/movie development.
ActionScript isn't very different from JavaScript. It applies the same language style to a timeline application. And it offers several commands to work with movies. But, it essentially adopts the same ECMAscript requirements for it's language.

### Developing with JavaScript

JavaScript is a standardized language best described by popular use. Alterations to the language need to be adopted. Deprecation of former code-practice is common in the standardization process. The community of developers is social. This means that they migrate to new instances of JavaScript usage. Information overload is expected for individuals attempting the intensive learning curve. New standards are adopted progressively so that programmers can migrate their assets. Most coders will attempt some restriction of their required skill-set. It's best to communicate/share via a project when producing larger developments. See: https://developer.mozilla.org/en-US/docs/JavaScript

### Developing with React

React is a Javascript library built and maintained by Facebook. It is used for developing of web and mobile apps. React relies on Virtual DOM for updating the UI which sometimes creates performance issues.