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相关经验文章,请点击: