JavaScript

duimnael|Nie-amptelike logo van JavaScript

**JavaScript** (**JS**) is 'n multiparadigma-programmeertaal wat verskeie style ondersteun, insluitend objekgeoriënteerde, funksionele, prototipegebaseerde en gebeurtenisgedrewe programmering. Die meerderheid webblaaiers gebruik en ondersteun die taal. Javascript laat webbladsye toe om interaktief op te tree (dit wil sê die bladsy verander gebaseerd op die gebruiker se toevoer of ander gebeurtenisse).

JavaScript word gereeld met die Java-programmeertaal verwar, veral omdat beide tale algemeen vir webtoepassings gebruik word. Alhoewel die tale sommige sintaktiese elemente deel (wat hulle ook in gemeen het met C, het JavaScript heelwat meer met funksionele programmeertale as met Java in gemeen.

Javascript is eers net gebruik deur webblaaiers maar is verder ontwikkel om ook werk vir die bediener te doen (veral deur Node.js).

Javascript Frameworks word ook nou gebruik vir statiese webblaaiers (deur biblioteke soos Angular, ReactJS en VueJS) as ook selfoon toepassings, deur gebruik van React Native.

## Kenmerke van JavaScript 
### Universele ondersteuning 
Alle moderne webblaaiers ondersteun Javascript. Voorheen moes gebruikers in die -etiket aandui watter taal gebruik word, maar dit is nie meer nodig nie.

### Taalstruktuur 
JavaScript ondersteun baie van die standaardstrukture vanuit C (if-stellings, while-lusse, switch-stellings ens.). Dit verskil wel wat die strekking (Engels: *scope*) van veranderlikes betref (met ander woorde waar in die kode veranderlikes/funksies sinvolle betekenis het). Soos in C is daar onderskeid tussen uitdrukkings en stellings.

### Dinamiese datatipes 
JavaScript se veranderlikes se datatipes word dinamies toegeken. Die tipe word afgelei vanaf die waarde van 'n veranderlike eerder as 'n uitdrukking. Om 'n veranderlike gelyk te stel aan 'n getal en daarna aan 'n "karakterstring" is heeltemal geldig. Javascript ondersteun verskeie maniere om die datatipe van voorwerpe te bepaal, insluitend Duck Typing.

## Sintaks 
Veranderlikes in JavaScript kan gedefineer word met die *var*, *let* of *const* sleutelwoorde.

```javascript
var x; // Skep die veranderlike x en stel dit gelyk aan "undefined" 
var y = 2; //Skep die veranderlyke y en stel dit gelyk aan 2
var z = "Goodbye World!"; //Skep die veranderlike z en stel dit gelyk aan 'n string wat die karakters "Goodbye World!" bevat
```

Kommentaar in Javascript word aangedui met twee vorentoe skuinsstrepe.  

Daar is geen ingeboude funksionaliteit vir toevoer/afvoer in JavaScript nie, aangesien die looptydomgewing dit voorsien.

Meeste looptydomgewings het 'n *console-*voorwerp waarmee afvoer gelewer kan word. Gewoonlik in webblaaiers kan gebruikers die console sien deur F12 te druk.  Onder volg 'n basiese *Hello World* program in JavaScript.

```javascript
console.log("Hello World!");
```

'n Eenvoudige rekursiewe funksie:

```javascript
function faktoriaal (n) {
    if(n === 0) { 
        return 1; 
    }
    return n * faktoriaal(n - 1);
}
faktoriaal(3); //Sal 3 * 2 * 1 = 6 terugstuur
```

'n Anonieme funksie (of lambda):

```javascript
function teller() {
    var telling = 0;
    return function() {
        return telling++;
    };
}

var closure = teller();
console.log(closure()); //Print 1 
console.log(closure()); //Print 2
console.log(closure()); //Print 3
```

## Gebruik op webblaaie 
'n Minimale voorbeeld van 'n webblad wat JavaScript-kode (HTML 4.01-sintaks) bevat word hieronder vertoon:

```html4strict

  'n Eenvoudige bladsy
  
    
      document.write('Hallo wêreld!');
    
    
      Jou webblaaier ondersteun nie JavaScript nie, of jy het dit afgeskakel.
    
  

```

'n Voordeel van die gebruik van Javascript op 'n webbladsy is dat die gebruiker se webblaaier die werk doen, eerder as die bediener. Dit laat die webbladsy toe om te reageer op die gebruiker se toevoer. JavaScript kan meer gebruikeraksies waarneem as HTML, soos watter knoppies op die sleutelbord gedruk is.

## Gebruik by Windows 
JavaScript kan ook op Windows uitgevoer word met die sogenaamde WSH (Windows Scripting Host). Daarvoor moet mens 'n .js-lêer skep en die program daarin skryf. Met 'n dubbelkliek kan die lêer uitgevoer word.

## Sien ook 
* HTML
* AJAX

## Eksterne skakels 
* Mozilla se amptelike JavaScript-dokumentasie