JS Tutoriaal

JS TUIS JS Inleiding JS Waarheen JS Uitset JS Verklarings JS sintaksis JS Kommentaar JS veranderlikes JS Laat JS Konst JS-operateurs JS Rekenkunde JS Opdrag JS datatipes JS Funksies JS Voorwerpe JS Events JS Strings JS String Metodes JS String Soek JS String Templates JS nommers JS-nommermetodes JS Skikkings JS Skikking Metodes JS Array Sorteer JS Skikking Iterasie JS Array Konst JS Datums JS Datum Formate JS Datum Kry Metodes JS Datum Stel Metodes JS Wiskunde JS Random JS Booleans JS Vergelykings JS Voorwaardes JS Skakelaar JS Loop Vir JS Loop For In JS Loop Vir Van JS Loop Terwyl JS Break JS Iterables JS-stelle JS Kaarte JS tipe JS Tipe Omskakeling JS Bitwise JS RegExp JS foute JS Bestek JS Hysing JS Streng modus JS hierdie sleutelwoord JS Arrow Funksie JS Klasse JS JSON JS Ontfouting JS Stylgids JS Beste Praktyke JS foute JS prestasie JS Voorbehou Woorde

JS weergawes

JS weergawes JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS Geskiedenis

JS Voorwerpe

Voorwerpdefinisies Voorwerp Eienskappe Voorwerp Metodes Voorwerp vertoon Voorwerptoebehore Voorwerpkonstrukteurs Voorwerpprototipes Object Iterables Voorwerpstelle Voorwerpkaarte Voorwerpverwysing

JS Funksies

Funksie definisies Funksie parameters Funksie Aanroep Funksie oproep Funksie Pas toe Funksie sluitings

JS Klasse

Klasintro Klas Erfenis Klas Staties

JS Async

JS Terugbelle JS Asynchroon JS Beloftes JS Async/Wag

JS HTML DOM

DOM Inleiding DOM Metodes DOM-dokument DOM Elemente DOM HTML DOM-vorms DOM CSS DOM-animasies DOM-geleenthede DOM Gebeurtenis Luisteraar DOM-navigasie DOM nodusse DOM Versamelings DOM Node lyste

JS Browser BOM

JS venster JS skerm JS ligging JS Geskiedenis JS Navigator JS Popup Alert JS Tydsberekening JS koekies

JS Web API's

Web API Inleiding Webvorms API Webgeskiedenis API Webberging API Webwerker API Web haal API Web Geolocation API

JS AJAX

AJAX Intro AJAX XMLHttp AJAX-versoek AJAX-reaksie AJAX XML-lêer AJAX PHP AJAX ASP AJAX-databasis AJAX toepassings AJAX voorbeelde

JS JSON

JSON Inleiding JSON-sintaksis JSON vs XML JSON-datatipes JSON Ontleed JSON Stringify JSON-voorwerpe JSON-skikkings JSON-bediener JSON PHP JSON HTML JSON JSONP

JS vs jQuery

jQuery keurders jQuery HTML jQuery CSS jQuery DOM

JS grafika

JS grafika JS Canvas JS Plot JS Chart.js JS Google Chart JS D3.js

JS Voorbeelde

JS Voorbeelde JS HTML DOM JS HTML-invoer JS HTML-voorwerpe JS HTML-geleenthede JS Blaaier JS Redakteur JS Oefeninge JS Vasvra JS Sertifikaat

JS Verwysings

JavaScript-voorwerpe HTML DOM-voorwerpe


JavaScript funksie definisies


JavaScript-funksies word gedefinieer met die functionsleutelwoord.

Jy kan 'n funksieverklaring of 'n funksie -uitdrukking gebruik .


Funksieverklarings

Vroeër in hierdie tutoriaal het jy geleer dat funksies met die volgende sintaksis verklaar word:

function functionName(parameters) {
  // code to be executed
}

Verklaarde funksies word nie onmiddellik uitgevoer nie. Hulle word "gestoor vir latere gebruik", en sal later uitgevoer word, wanneer hulle opgeroep (opgeroep) word.

Voorbeeld

function myFunction(a, b) {
  return a * b;
}

Puntkommae word gebruik om uitvoerbare JavaScript-stellings te skei.
Aangesien 'n funksieverklaring nie 'n uitvoerbare stelling is nie, is dit nie algemeen om dit met 'n kommapunt te beëindig nie.


Funksie uitdrukkings

'n JavaScript-funksie kan ook gedefinieer word deur 'n uitdrukking te gebruik .

'n Funksie-uitdrukking kan in 'n veranderlike gestoor word:

Voorbeeld

const x = function (a, b) {return a * b};

Nadat 'n funksie-uitdrukking in 'n veranderlike gestoor is, kan die veranderlike as 'n funksie gebruik word:

Voorbeeld

const x = function (a, b) {return a * b};
let z = x(4, 3);

Die funksie hierbo is eintlik 'n anonieme funksie ('n funksie sonder 'n naam).

Funksies wat in veranderlikes gestoor word, het nie funksiename nodig nie. Hulle word altyd opgeroep (opgeroep) deur die veranderlike naam te gebruik.

Die funksie hierbo eindig met 'n kommapunt omdat dit 'n deel van 'n uitvoerbare stelling is.



Die Function() Constructor

Soos u in die vorige voorbeelde gesien het, word JavaScript-funksies gedefinieer met die functionsleutelwoord.

Funksies kan ook gedefinieer word met 'n ingeboude JavaScript-funksie-konstruktor genaamd Function().

Voorbeeld

const myFunction = new Function("a", "b", "return a * b");

let x = myFunction(4, 3);

Jy hoef eintlik nie die funksiekonstruktor te gebruik nie. Die voorbeeld hierbo is dieselfde as om te skryf:

Voorbeeld

const myFunction = function (a, b) {return a * b};

let x = myFunction(4, 3);

Meeste van die tyd kan jy vermy om die newsleutelwoord in JavaScript te gebruik.


Funksie Hys

Vroeër in hierdie tutoriaal het jy geleer oor "hys" ( JavaScript -hysing ).

Hys is JavaScript se verstekgedrag om verklarings na die bokant van die huidige omvang te skuif.

Hysing is van toepassing op veranderlike verklarings en op funksie verklarings.

As gevolg hiervan kan JavaScript-funksies opgeroep word voordat dit verklaar word:

myFunction(5);

function myFunction(y) {
  return y * y;
}

Funksies wat met 'n uitdrukking gedefinieer word, word nie opgehef nie.


Self-oproep funksies

Funksie-uitdrukkings kan "self-inroepend" gemaak word.

'n Selfoproepende uitdrukking word outomaties opgeroep (begin) sonder om opgeroep te word.

Funksie-uitdrukkings sal outomaties uitgevoer word as die uitdrukking gevolg word deur ().

Jy kan nie self 'n funksieverklaring oproep nie.

Jy moet hakies rondom die funksie byvoeg om aan te dui dat dit 'n funksie-uitdrukking is:

Voorbeeld

(function () {
  let x = "Hello!!";  // I will invoke myself
})();

Die funksie hierbo is eintlik 'n anonieme selfoproepende funksie (funksie sonder naam).


Funksies kan as waardes gebruik word

JavaScript-funksies kan as waardes gebruik word:

Voorbeeld

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3);

JavaScript-funksies kan gebruik word in uitdrukkings:

Voorbeeld

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3) * 2;

Funksies is objekte

Die typeofoperateur in JavaScript gee "funksie" vir funksies terug.

Maar JavaScript-funksies kan die beste beskryf word as objekte.

JavaScript-funksies het beide eienskappe en metodes .

Die arguments.lengtheienskap gee die aantal argumente terug wat ontvang is toe die funksie aangeroep is:

Voorbeeld

function myFunction(a, b) {
  return arguments.length;
}

Die toString()metode gee die funksie as 'n string terug:

Voorbeeld

function myFunction(a, b) {
  return a * b;
}

let text = myFunction.toString();

'n Funksie wat gedefinieer word as die eienskap van 'n voorwerp, word 'n metode na die voorwerp genoem.
'n Funksie wat ontwerp is om nuwe voorwerpe te skep, word 'n objekkonstruktor genoem.


Pyltjie funksies

Pyltjiefunksies laat 'n kort sintaksis toe vir die skryf van funksie-uitdrukkings.

Jy het nie die functionsleutelwoord, die returnsleutelwoord en die krulhakies nodig nie .

Voorbeeld

// ES5
var x = function(x, y) {
  return x * y;
}

// ES6
const x = (x, y) => x * y;

Pyltjiefunksies het nie hul eie nie this. Hulle is nie goed geskik om objekmetodes te definieer nie .

Pylfunksies word nie gehys nie. Hulle moet gedefinieer word voordat hulle gebruik word.

Om te gebruik const is veiliger as om te gebruik var, want 'n funksie-uitdrukking is altyd konstante waarde.

Jy kan slegs die returnsleutelwoord en die krulhakies weglaat as die funksie 'n enkele stelling is. As gevolg hiervan kan dit 'n goeie gewoonte wees om hulle altyd te hou:

Voorbeeld

const x = (x, y) => { return x * y };

Pyltjiefunksies word nie in IE11 of vroeër ondersteun nie.