我知道能够使用typeof
,但是,我想知道是否使用
String(anyVariable) === anyVariable
为了弄清楚是否anyVariable
是一个字符串:
- 是一种普遍有效的方法吗?
- 在浏览器中始终如一地工作?
- 有什么陷阱吗?
我知道能够使用typeof
,但是,我想知道是否使用
String(anyVariable) === anyVariable
为了弄清楚是否anyVariable
是一个字符串:
我会说不要那样做,并使用 typeof 因为“String”用于操作存储的一段文本,而不是比较类型。最好在预期用途中使用这些功能,以确保最大的稳定性和最佳实践。此外,目的是使用方法扩展类型。因此,您基本上会导致更多的工作和处理,而不仅仅是类型比较。希望这能回答它,尽管这是一个只有“意见”作为答案的问题。您不会创建一个新对象,将其分配给您当前的对象,以检查它是否是一种对象,对吗?不,你只会使用“typeof”。
我想不出任何理由使用你的方法而不是更简单的方法typeof
。您的性能可能会更差(Matti 的 jsperf 慢 15 倍)并且更复杂。
您的方法将需要多次内存操作(创建字符串对象,然后为其分配字符串值),然后需要运行垃圾收集器,而typeof
只需查看内部 javascript 对象的属性。
如有疑问,请选择解决问题的最简单方法。
如有疑问,请选择语言定义中指定的方法来解决您的问题。
如有疑问,请选择需要较少内存操作的方法。