ManagedCloud Servers

High performance handled and monitored by us 24/7/365. A complete solution to provide you with our in house expertise 24/7 tailored to your specific needs. We'll setup a bespoke server for your site using the latest tehnologies so you can get the most out of your hardware and get your website loading quickly and reliably. Find out more..

cPanelCloud Servers

Recommended - High performance cloud servers with no technical knowledge required. If you're hosting multiple websites already and you're looking to consolidate, or if you're looking to isolate yourself from the shared hosting environment but you don't have the time or knoweldge to manage a server, then the Managed cPanel Servers are for you. Find out more..

UnmanagedCloud Servers

Our unmanaged range gives you complete control at rock bottom prices and our cloud platform boasts super fast multipath 40Gb/s network, the latest Intel Xeon V3 CPUs and enterprise grade redundant SSDs. If you're a sysadmin look no further, we offer some of the best specification to price ratio servers available. Find out more..

Need Web Hosting? Try ours, it's fast, reliable and feature loaded with support you can depend on. From £1.60 / month.

View Plans

A Guide to Understanding and Writing Javascript Code

JavaScript is a scripting language widely used for client-side web development. Scripting language is a lightweight programming language. It is programming code that can be inserted into HTML pages and be executed by all modern web browsers.

You can use JavaScript to validate form, change style, change HTML content, etc.

It is a scripting language widely used for client-side web development. It is a dynamic, weakly typed, prototype-based language with first-class functions. JavaScript was influenced by many languages and was designed to look like Java, but be easier for non-programmers to work with. All you need to run JavaScript is a Normal Browser.

Objectives

The main objective of this course is to get you up to speed with JavaScript language.

There are a lot of examples demonstrating JavaScript functionality and features.

Basic JavaScript Syntax

Before you can write any JavaScript code you need to know how to include it in your documents. There are two ways to do this, you can either include your script between script tags in your HTML file or you can import an external script file.

Usually script tags should be place in the head section of your document but there may be times when you need to include a script block within the body The following code shows the two methods of including JavaScript in your document.

        <head>
          <script language="JavaScript">
            function doNothing(param1, param2){
              //this function does not do anything
              return param1;
            }
          </script>
          <script language="JavaScript" src="xxx.js"></script>
        </head>

The first script tag includes JavaScript on the page, the second imports from another file. The actual JavaScript code is the same whichever method you use. It is usually a good idea to keep functions that can be reused on several pages in an external file, whereas code relate specifically to this page could be included in a script block.

Introduction to this Keyword

The this keyword is among the most important and powerful in Javascript. It is very important to understand how this keyword works for one to be able to use it.

The this keyword means owner of the function we are the executing or to the object that the method is a member of.

The best way to understand this keyword is through simple examples.

   function changeColor(){
        this.style.color = 'blue';
    }

If you create the above function on a page, then the owner of the function changeColor is the page or the window object. Hence if you run the about function you will get errors because the window object doesn't have style object.

  • Copying In order to use the this keyword to all its capabilities, it is very important to ensure that the correct HTML element owns the function that is going to use it. Let’s use the onclick property of an element. To do this, we need to copy the changeColor function to the onclick property. This property becomes the method.
element.onclick = changeColor;

Here, on execution of the event handler, the HTML element is referred by the keyword this, and the color changes.

  • Referring
  • When referring, the function is usually not copied. It is just refered to, making this a little bit tricky.
<element onclick = "changeColor()">

The actual function is not contained in the onclick property, but in a function call.

changeColor();

Therefore what happens is that, it goes to the changeColor() and executes it.

Errors are the found (in case there are any) when the this keyword arrives at changeColor().

To see the difference between copying and referring use the alert function:

```
    d.onclick = changeColor;
    alert(d.onclick);
```
```
function changeColor(){
    this.style.color = 'blue';
}
```

Looking at the piece of code above, the onclick method has the this keyword. This means that the HTML element has been referred to by the ```this keyword.

Look at the code below;

<div onclick="changeColor()">   
    <script>
        var d = document.getElementsByTagName('div')[0];
        alert(d.onclick);
    </script>

Refreshing the page, this is what you would see:

    function onclick(event){
        changeColor();
    }

In the piece of code above, you can see that we do not have the this keyword in the onclick function. This means that the HTML element has not been referred to by the keyword.

JavaScript Functions

In JavaScript, Functions are objects themselves. As such, they have properties and can be passed around and interacted with like any other object. Function are very easy to define:

    //function
    function mySchool(school){  
        alert("My School is " + school);        
    }

You can assign functions to variables:

    var move = function (){
        alert("1st Step");
        alert("2nd Step");
        alert("Moved two steps");
    }

The above function is similar/same as:

    function move(){
        alert("Moved two steps");
    }

You can create functions within functions(methods):

    function walk(){
        this.step = 0;
        //method
        this.move = function(){
            this.step ++;
            alert("Step " +this.step);
        }
    }
    walking = new walk();
    walking.move(); //  1st Step
    walking.move(); //  2nd Step
    walking.move(); //  3rd Step

Introduction to DOM Elements

DOM is an acronym for Document Object Model. To allow JavaScript to interact with your document it is represented by a hierarchical set of objects, this set of objects is called the DOM. Each object exposes various properties and methods, additionally some objects expose collections of other objects. All objects also expose standard properties to allow access to the parent and child objects. The root object in the hierarchy is the window; the window's main child element is the document object, which has various children including collections of forms and anchors. You can reference any object by name or id, the methods document.getElementById(id) and document.getElementByName(name) are useful to avoid working your way down the object hierarchy and helping your code work properly in different browsers.

Customizing Elements

JavaScript enables you to customize existing elements by override certain properties and methods or adding your own methods and properties to the element.

    d = document.createElement('div');
    d.myName = 'Allen';
    d.hello = function(){
        alert("Hello " + d.myName);
}

You can call the variable: d.myName; You can call the function: d.hello();

Event Handling

Events are action that can be detected by JavaScript. Every element on a web page has certain element that can trigger a JavaScript function. E.g. onClick event of a button element to indicate that a function will run when a user clicks on the button. Event handling has a cross browser problem. A standard i.e. addEventListener function is used but it does not work for I.E(Internet Explorer).

Registering Event Handlers:

The function addEventListener is normally used as the standard for registering events, but I.E uses the attachEvent function to register events. The addEventListener is used by most browser apart for I.E(Internet Explorer) which uses the attachEvent function. Look at the example:

    //The function below make enable cross browser event Registering
            //elem: The element that will contain the event
            //ev:   Event
            //eh:   Event handling Function
            //cb:   caputure or bubble
            function addEvent(elem, ev, eh, cb
                if(elem.addEventListener)
                    alert('Netscape Browser');
                    elem.addEventListener(ev, eh, cb);
                    return true;
                }else if(elem.attachEvent){
                    alert('Microsoft Browser');
                    elem.attachEvent('on'+ev, eh);      }}

Using addEventListener:

element.addEventListener(event,function,boolean);

Looking at the above definition there are 3 arguments. The first argument is the event e.g. the click function serves as the function for event handling, with the boolean (either true or false) is used to show when the eventHandler is supposed to be executed. It can be executed either in the bubbling or the capturing phase. In a situation where you are not sure on either bubbling or the capturing phase, you can use false which is for bubbling. The this keyword always has reference to the element when using addEventListener.

Using attachEvent:

element.attachEvent(event, function); Looking at the above function, it has two arguments, the event and function. The drawback with this function is that it always uses bubbling and also the event handling function is always referenced not copied hence the this keyword.

Conclusion

This course has handled all the major parts that are required for one to be competent in javascript. Having understood all the bits of it, it is expected that you are now up to speed with javascript and are able to write any piece of code in javascript comfortably.

Need Web Hosting? Try ours, it's fast, reliable and feature loaded with support you can depend on. From £1.60 / month.

View Plans