【Javascript修炼篇】一文搞懂各种 isFunctions

在每种编程语言中,数据验证都是我们在修改或显示数据前的必修课。

说到JavaScript,我们几乎天天都在用这些功能,为了快速复用,我们通常会把它们都放在一个实用类里。

废话不多说,直接上干货。

基本上,我们来看看这些类型的判定:

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'

以这些为参考,咱们来写几个检查函数吧。

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

如果想排除无穷大(Infinity)和无穷小(-Infinity),可以这么改逻辑:

const isNumber = value => typeof value === 'number' && !isNaN(value) && isFinite(value);

isNumber(Infinity);
false

isNumber(-Infinity);
false

isBoolean

const 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

isString

const isString = value => typeof value === 'string';

isString('test');
true

isString(undefined);
false

isString(null);
false

isString({});
false

// 其他值返回 false,你也可以自己验证下。

isObject

const isObject = value => value !== null && !Array.isArray(value) && typeof value === 'object';

isObject({});
true

isObject(null);
false

isObject([]);
false

isArray

// 直接用 Array.isArray(value) 就行了。

const isArray = value => Array.isArray(value);

isArray([]);
true

isArray({});
false

isArray(null);
false

isFunction

const isFunction = value => typeof value === 'function';

isFunction(function() {});
true

isFunction(null);
false

isFunction(undefined);
false

isFunction({});
false

isInteger

我们可以直接用 Number.isInteger(value)

当然了,根据使用场景不同,这些函数可能还有些特殊情况。

如果我发现漏了什么关键的验证,请务必告诉我,一起完善这些检查函数。

希望这些小技巧能帮到你,至少比满世界找长篇大论的解释来得轻松愉快些 😝。

感谢阅读!祝你阅读愉快 😃

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值