我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文说一下在js的世界里面,判断变量类型的方案。抛开typescript不谈,js代码里面,很少会检测变量的类型。不过,还是存在一个typeof方法来检测变量类型的。但是,这个变量类型检测结果很不靠谱。这也就是本文中的写作背景。

苏南大叔:js代码,array类型识别成object怎么办?类型判断最佳实践 - js-array-type
js代码,array类型识别成object怎么办?类型判断最佳实践(图2-1)

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文记录的是js代码的变量类型检测,方案给了两种,但是都各有利弊。大家看自己的情况使用吧。理论上来说,适用于node环境和浏览器环境。测试环境:node@16.14.2chrome@106.0.5249.119

typeof【不推荐】

这个typeof是系统自带的函数:

console.log(typeof([1,2,3]));
console.log(typeof(1));

结果输出:

object
number
可见typeof效果并不咋地,array类型给识别成object

prototype 【推荐】

这个自定义getType函数,比系统自带的typeof函数要靠谱的多。

function getType(payload) {
    return Object.prototype.toString.call(payload).slice(8, -1)
}
console.log(getType([1,2,3]));
console.log(getType(1));

结果输出:

Array
Number

苏南大叔:js代码,array类型识别成object怎么办?类型判断最佳实践 - js-array-type-code
js代码,array类型识别成object怎么办?类型判断最佳实践(图2-2)

$.type()(jquery)

古老的jquery有个解决方案,叫做$.type()

console.log($.type([1,2,3]));
console.log($.type(1));

结果输出:

array
number

如果在node环境下,构造这个$变量还是个问题。这里就不具体的阐述了。参考文章:

相关链接

总结

更多js相关经验文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   js    node