Why You Should Use Arrow Functions For Validation Functions

Why You Should Use Arrow Functions For Validation Functions

ยท

3 min read

Arrow Functions are one of the greatest additions in ES6, whether it's regarding the this keyword or regarding the shorter syntax.

Today we will see, how using arrow functions makes our code much simpler and shorter while creating validation functions.

Suppose, you have written a function which returns true if the email is valid otherwise returns an error message as shown below:

const validateEmail = email => /^[^@ ]+@[^@ ]+\.[^@ \.]+$/.test(email);
const isValidEmail = function(value) {
    if (validateEmail(value)) {
        return true;
    } else {
        return "Please enter a valid email address";
    }
}

let isValid = isValidEmail('abc@gmail.com');
console.log(isValid); // true
isValid = isValidEmail('abc@@gmail.com');
console.log(isValid); // Please enter a valid email address

The same function can be written in just one line using ES6 arrow functions syntax as shown below:

const validateEmail = email => /^[^@ ]+@[^@ ]+\.[^@ \.]+$/.test(email);
const isValidEmail = value => validateEmail(value) || 'Please enter a valid email address.';

let isValid = isValidEmail('abc@gmail.com');
console.log(isValid); // true
isValid = isValidEmail('abc@@gmail.com');
console.log(isValid); // Please enter a valid email address

Suppose you have written a generic validation function that checks if the input field is empty or not as shown below:

const isNotEmpty = function(fieldName) {
  return function(fieldValue) {
    if (fieldValue.trim().length > 0) {
      return true;
    } else {
      return fieldName[0].toUpperCase() + fieldName.slice(1) + " is required.";
    }
  };
};

const fieldName = isNotEmpty('name');
let isValid = fieldName('David');
console.log(isValid); // true
isValid = fieldName('');
console.log(isValid); // Name is required

The same function can be written in just one line using ES6 arrow functions syntax as shown below:

const isNotEmpty = fieldName => fieldValue => fieldValue.trim().length > 0 || fieldName[0].toUpperCase() + fieldName.slice(1) + ' is required.';

const fieldName = isNotEmpty('name');
let isValid = fieldName('David');
console.log(isValid); // true
isValid = fieldName('');
console.log(isValid); // Name is required

These are just two examples of validation functions but as you can see, you can create all validation functions using this ES6 arrow function syntax which allows us to write code in a simpler and shorter way.

Thanks for reading!

Check out my recently published Mastering Redux course.

In this course, you will build 3 apps along with food ordering app and you'll learn:

  • Basic and advanced Redux
  • How to manage the complex state of array and objects
  • How to use multiple reducers to manage complex redux state
  • How to debug Redux application
  • How to use Redux in React using react-redux library to make your app reactive.
  • How to use redux-thunk library to handle async API calls and much more

and then finally we'll build a complete food ordering app from scratch with stripe integration for accepting payments and deploy it to the production.

Want to stay up to date with regular content regarding JavaScript, React, Node.js? Follow me on LinkedIn.

Did you find this article valuable?

Support Yogesh Chavan by becoming a sponsor. Any amount is appreciated!