0

我知道能够使用typeof,但是,我想知道是否使用

String(anyVariable) === anyVariable

为了弄清楚是否anyVariable是一个字符串:

  • 是一种普遍有效的方法吗?
  • 在浏览器中始终如一地工作?
  • 有什么陷阱吗?
4

2 回答 2

1

我会说不要那样做,并使用 typeof 因为“String”用于操作存储的一段文本,而不是比较类型。最好在预期用途中使用这些功能,以确保最大的稳定性和最佳实践。此外,目的是使用方法扩展类型。因此,您基本上会导致更多的工作和处理,而不仅仅是类型比较。希望这能回答它,尽管这是一个只有“意见”作为答案的问题。您不会创建一个新对象,将其分配给您当前的对象,以检查它是否是一种对象,对吗?不,你只会使用“typeof”。

于 2013-10-17T18:44:11.640 回答
0

我想不出任何理由使用你的方法而不是更简单的方法typeof。您的性能可能会更差(Matti 的 jsperf 慢 15 倍)并且更复杂。

您的方法将需要多次内存操作(创建字符串对象,然后为其分配字符串值),然后需要运行垃圾收集器,而typeof只需查看内部 javascript 对象的属性。

如有疑问,请选择解决问题的最简单方法。

如有疑问,请选择语言定义中指定的方法来解决您的问题。

如有疑问,请选择需要较少内存操作的方法。

于 2013-10-17T18:44:04.830 回答