在JavaScript中,我可以通过以下方式声明一个字符串:
var a = "Hello World";
var b = new String("Hello World");
但a不是String的一个实例...
console.log(a instanceof String); //false;
console.log(b instanceof String); //true;
那么如何查找字符串字面量的类型或“instanceof
”呢?
能否强制JavaScript为每个字符串字面量创建一个new String()
?
instanceof
(像我一样,讨厌typeof ==
这种垃圾),你可以在检查它们时轻松地将它们强制转换为对象。将以下代码添加到您的代码中Object.defineProperty(Object.prototype, '_object', {get:function() { return this; }});
,然后 voila,'string'._object instanceof String
返回true
!如果您想要避免原型并创建函数,但这是最优雅的 if 语句。 - Hashbrown