In JavaScript, there are two types of functions: regular functions and arrow functions. They are similar from the logical point of view, but there are important syntactical and technical differences.

How to create a regular JavaScript function

Regular functions are defined using the function keyword.

Here is an example of a regular function in JavaScript:

function add(x, y) {
  return x + y;
}

How to create an arrow function in JavaScript

Arrow functions, on the other hand, are defined using the arrow => syntax.

Here is an example of an arrow function in JavaScript:

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

Core difference between the regular functions and arrow functions in JavaScript

One of the main differences between regular functions and arrow functions is that arrow functions do not have their own this value.

Sometimes it can be beneficial, for example, arrow functions are often used in conjunction with higher-order functions like map, filter, and reduce, because they allow you to access the this value of the enclosing scope.

Regular functions are more flexible than arrow functions because they have their own this value and can be used as constructors. However, they can be more verbose and may require the use of the bind method to access the correct this value in certain situations.

Overall, the choice between using a regular function or an arrow function will depend on the specific needs of your program. Both have their own strengths and trade-offs, and it is important to choose the right tool for the job.