DEV Community

Cover image for Javascript: isFunctions
Kurapati Mahesh
Kurapati Mahesh

Posted on • Edited on

11 1

Javascript: isFunctions

In every language, we need to validate data before modifying or displaying it.

So, here in the case of javascript also we almost regularly use these functions and we maintain all these in single util class to reuse quickly.

No further theory let’s jump into stuff.

Basically,

typeof 1;
'number'
typeof 1.2;
'number'
typeof NaN;
'number'
typeof false;
'boolean'
typeof '';
'string'
typeof function () {};
'function'
typeof undefined;
'undefined'
typeof null;
'object'
typeof {};
'object'
typeof [];
'object'
view raw typeof.js hosted with ❤ by GitHub

Use the above reference and write isFunctions now:

isNumber

const isNumber = value => typeof value === 'number' && !isNaN(value);
isNumber(1);
true
isNumber(1.2);
true
isNumber(-1);
true
isNumber(-1.2);
true
isNumber(01);
true
isNumber(00);
true
isNumber(Infinity);
true
isNumber(-Infinity);
true
isNumber(NaN);
false
isNumber(undefined);
false
isNumber(true);
false
isNumber('23');
false
isNumber(null);
false
isNumber('');
false
isNumber('23');
false
isNumber([]);
false
isNumber({});
false
isNumber(function () {})
false
view raw isnumber.js hosted with ❤ by GitHub

(+/-)Infinity is of type number in javascript as if you want to avoid then you can update logic as:

const isNumber = value => typeof value === 'number' && !isNaN(value) && isFinite(value);
undefined
isNumber(Infinity);
false
isNumber(-Infinity);
false

isBoolean

isBoolean = value => typeof value === 'boolean';
isBoolean(true);
true
isBoolean(false);
true
isBoolean('test');
false
isBoolean(1);
false
isBoolean(0);
false
isBoolean(undefined);
false
isBoolean(null);
false
isBoolean([]);
false
isBoolean(NaN);
false
isBoolean({});
false
isBoolean(function () {});
false
view raw isboolean.js hosted with ❤ by GitHub

isString

const isString = value => typeof value === 'string';
isString('test');
true
isString(undefined);
false
isString(null);
false
isString(undefined);
false
isString({});
false
// you can validate remaining as they return false.
view raw isstring.js hosted with ❤ by GitHub

isObject

isObject = value => typeof value === 'object';
isObject({});
true
isObject([]); // failed.
true
isObject(null); // failed.
true
isObject = value => value !== null && !Array.isArray(value) && typeof value === 'object';
isObject({});
true
isObject(null);
false
isObject([]);
false
view raw isobject.js hosted with ❤ by GitHub

isArray

// you can directly use Array.isArray(value);
isArray = value => Array.isArray(value);
isArray([]);
true
isArray({});
false
isArray(null);
false
// Validate for other values.
view raw isarray.js hosted with ❤ by GitHub

isFunction

isFunction = value => typeof value === 'function';
isFunction(function() {});
true
isFunction(null);
false
isFunction(undefined);
false
isFunction({});
false
view raw isfunction.js hosted with ❤ by GitHub

isInteger
We can use Number.isInteger(value)

Yes. There are some exceptions based on where do we use these functions.

Please do suggest if I miss any mandatory validations in the above isFunctions.

Hope these help to a little extent instead of going over lengthy explanations around the globe 😝.

Thank you! Happy Reading :)


💎 Love to see your response

  1. Like - You reached here means. I think, I deserve a like.
  2. Comment - We can learn together.
  3. Share - Makes others also find this resource useful.
  4. Subscribe / Follow - to stay up to date with my daily articles.
  5. Encourage me - You can buy me a Coffee

Let's discuss further.

  1. Just DM @urstrulyvishwak
  2. Or mention
    @urstrulyvishwak

For further updates:

Follow @urstrulyvishwak

Top comments (1)

Collapse
 
homan_sohail_be078b2db5f0 profile image
Homan Sohail

Image description