Skip to content

Instantly share code, notes, and snippets.

@dineshdeveloper1
Created July 22, 2023 17:24
Show Gist options
  • Save dineshdeveloper1/afda92d1182191b6446509ea1ecc9ad3 to your computer and use it in GitHub Desktop.
Save dineshdeveloper1/afda92d1182191b6446509ea1ecc9ad3 to your computer and use it in GitHub Desktop.
JavaScript Function
// ******** Basic ********
function functionName(param1, param2, ...) {
// code to be executed
}
// ******** Function Expression ********
var x = function (a, b) { return a * b };
var z = x(4, 3);
// ******** Function Constructor ********
var multi = new Function("a", "b", "return a * b");
var x = multi(4, 3);
/* Hoisting : moving declarations to the
top of the current scope
i.e Functions can be called before
they are declared */
myFunction(5);
function myFunction(y) {
return y * y;
}
/* Self Invoking function
i.e Will invoke without being called */
(function () {
var x = "Hello !!";
})();
// ******** Arrow functions ********
// ES5
var x = function(x, y) { return x * y;}
// ES6
const x = (x, y) => x * y;
// ******** ES6 Default parameters ********
var x = function (a=1, b=1)
{ /* function code */ }
// ******** Arguments Object ********
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i;
var max = -Infinity;
for (i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
// ******** Function as methods ********
var myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName();
// Output : "John Doe"
/* ******** Invoke Function with
Function Constructor ******** */
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
var x = new myFunction("John", "Doe");
x.firstName;
// Output : John
/* ******** call() & apply() method
call() method takes arguments separately
apply() method takes arguments as an array
******** */
var person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName
+ "," + city + "," + country;
}
}
var person1 = { firstName:"John", lastName: "Doe" }
var person2 = { firstName:"Mary", lastName: "Doe" }
person.fullName.call(person1, "Oslo", "Norway");
// Output : John Doe,Oslo,Norway
person.fullName.apply(person2, ["Oslo", "Norway"]);
// Output : Mary Doe,Oslo,Norway
/* ******** Closures
Make variables private ******** */
var add = (function () {
var counter = 0;
return function () {counter += 1; return counter}
})();
add();
add();
add();
// counter value is now 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment