在字符串上调用toString

Max*_*Max 2 javascript v8 node.js

在我的Node.js应用程序中,我有一个数据库层,它调用toString需要作为字符串传递给数据库的输入参数(例如,数字).我将参数传递给库的地方,我也应该调用toString吗?一方面,我喜欢明确.另一方面,我正在调用toString已经是字符串的东西.如果这是不必要的,我宁愿保存CPU周期.

调用toString字符串的代价是多少?

T.J*_*der 6

在字符串上调用toString的代价是多少?

在任何体面的引擎(和V8是一个不错的引擎),它应该几乎是免费的.但它仍然必须通过原型链进行属性查找,以确保有人没有覆盖它.所以它不会免费,只是便宜.

......我应该在那里打电话给String吗?

这是一个主观的.我跟@dystroy:没有必要.此外,最好尽可能为API提供尽可能多的信息,以防它们在将来的版本中增强它.除非API要求你给它字符串,否则我会通过在传递params之前不转换为字符串来保存信息.