到目前为止我所拥有的。
const isNotNullObject = function (x) {
return (typeof x === "object" && x !== null);
};
它适用于数组和对象。但对于String对象呢!
isNotNullObject(String(5))
false
isNotNullObject(new String(5))
true
对于任何类型的字符串,我想要的是false。请注意,我无法控制调用代码。我无法自行删除new
。我需要一个不会创建新String的解决方案,只是出于性能原因检查是否存在相等性。
答案 0 :(得分:3)
使用 instance of
return (typeof x === "object" && !(x instanceof String) && x !== null)
const isNotNullObject = function(x) {
return (typeof x === "object" && !(x instanceof String) && x !== null);
};
console.log(
isNotNullObject(String(5)),
isNotNullObject(new String(5))
)
答案 1 :(得分:0)