javascript - 有没有办法只检查一个普通的 javascript 对象而不是任何其他特殊类型的对象(即日期)?
问题描述
我尝试使用 instanceof 但它无法区分{}
,[]
和Date
.
例如,如果我想创建一个这样的 if 树:
function foo(someVar){
if (/*someVar is an {}*/) {
} else if (/*someVar is an []*/) {
} else { //someVar could be a String or a Date or anything
}
}
如果条件,我该如何写?任何帮助将不胜感激,谢谢!
解决方案
检查某个东西是否是“普通对象”首先想到的是看看它是否没有原型。
所以我想我会这样写:
function foo(someVar){
if (typeof "someVar" === 'object' && someVar.prototype === undefined) {
} else if (Array.isArray(someVar)) {
} else {
}
}
推荐阅读
- relational-database - DBMS 中的部分依赖
- javascript - 如何去反应的最后一个元素?
- linq - Linq 运算符聚合匹配值并对其加权
- python-3.x - 如何在 python 中导出加密密钥?
- python - 为什么在此代码中删除了最后一个按钮/任务?
- jenkins - 带有 ldap 的詹金斯:测试 LDAP 设置为用户显示两个组
- c# - Blazor wasm Web API 响应是一个 HTML 字符串
- python - 如何从脚本外部访问python变量
- python - 修改后的快速排序超出了最大递归深度
- javascript - Handlebars & Webpack:包含来自变量的模板