Ahmed Murtaza 😎
ahmedgmurtaza
ahmedgmurtaza
slides.com/ahmedmurtaza
codepen.io/ahmedgmurtaza
https://medium.com/@ahmedgmurtaza
are First class object
Declared with literals
Function as Data
Return values
Create Modules(scopes)
As Callbacks
1 - function (keyword)
2 - name (optional)
3 - list of Parameters (optional)
4 - body
function print(message){
//body
console.log(message);
}
print("Hi, this is Ahmed Murtaza");
Functions as Data
Referenced by variables
//No recursion possible
let print = function(){
console.log('print me!!');
}
print();
//with recursion
let facto = function factorial( f ){
if( f <= 1) return 0;
return f * factorial(f-1)
}
facto(5);
Referenced by Array Entries
function print(msg){ return msg; }
let values = [facto];
values[0]('Web is awesome!!');
Stored in Object Literals
let human = {
age: 27,
walk: function(){ console.log('walking'); },
}
human.walk(); //walking
As Parameters
function upperCase(val){
return val.toUpperCase();
}
function smallCase(val){
return val.toLowerCase();
}
function decorate(a, passFunction){
console.log(passFunction(a));
}
decorate('Pakistan', capitalCase); //PAKISTAN
decorate('PAKISTAN',smallCase); //pakistan
Return Values
//Return
function returnMin(a, b){
return Math.min(a,b);
}
console.log(returnMin(2,7)); //2
//Does not Return
function printMin(a, b){
console.log(2,7);
}
printMin(2,7); //2
functions can and cannot return values
Create Scopes
//self invoking anonymous function
(function(){
let myVal = 'JavaScript Functions';
. . . //rest of your work
})();
console.log(myVal); //Reference error
Callbacks
function greeting(name){
alert('hello'+name);
}
function processUserInput(callback){
let name = prompt('please enter your name');
callback(name);
}
processUserInput(greeting);
Function passed as parameter to another function