js代码,array类型识别成object怎么办?类型判断最佳实践
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文说一下在js
的世界里面,判断变量类型的方案。抛开typescript
不谈,js
代码里面,很少会检测变量的类型。不过,还是存在一个typeof
方法来检测变量类型的。但是,这个变量类型检测结果很不靠谱。这也就是本文中的写作背景。
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文记录的是js
代码的变量类型检测,方案给了两种,但是都各有利弊。大家看自己的情况使用吧。理论上来说,适用于node
环境和浏览器环境。测试环境:node@16.14.2
,chrome@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
$.type()(jquery)
古老的jquery
有个解决方案,叫做$.type()
。
console.log($.type([1,2,3]));
console.log($.type(1));
结果输出:
array
number
如果在node
环境下,构造这个$
变量还是个问题。这里就不具体的阐述了。参考文章:
相关链接
总结
更多js
相关经验文章,请点击:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。