vue - 获取对象类型
相比于传统的 jquery,vue 更加关注对象的类型,那么我们该如何判断一个对象的类型呢?
为了更高的健壮性,推荐 typeof 和 isPrototypeOf() 同时使用,确保任何情况下都不会出现问题。
/**
* 判断是不是字数字
*
* @param obj {*} 需要判断的值
* @returns {boolean}
*/
Layers.prototype.isNumber = function (obj) {
return typeof obj === 'number' || Number.prototype.isPrototypeOf(obj);
};
按现在的开发环境,只需要判断 typeof obj === 'number'
,
如果 new Number()
,会出现代码警告,因此只需要保持良好的习惯即可。
简单地说:
如果对象的 typeof 是 object(可以理解为 new 出来的对象),要用 isPrototypeOf() 进行判断;
基础数据类型:number、string、undefined、null、boolean,要用 typeof。
有点类似于 java 代码,javascript 中,基础类型也有对应的封装类型,比如数字有个对应的 Number 对象。
“new 出来的 Number” 和 “直接声明的数值”,判断类型的方式是完全不同的,代码如下。
{
let val = new Number(3);
console.log(val + 3);
// true
let ret1 = Number.prototype.isPrototypeOf(val);
// false
let ret2 = typeof val === 'number';
console.log(ret1);
console.log(ret2);
}
{
let val = 3;
// false
let ret1 = Number.prototype.isPrototypeOf(val);
// true
let ret2 = typeof val === 'number';
console.log(ret1);
console.log(ret2);
}
那么,如何判断两个对象类型是否一致呢?直接使用连等号即可。
let val1 = Object.getPrototypeOf(new Date());
let val2 = Object.getPrototypeOf(new Date());
console.log(val1 === val2);
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· 万字调研——AI生成内容检测
· 解决跨域问题的这6种方案,真香!
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库