Javascript - 原始字符串隐式转换为对象



我将参考Mozilla关于String 对象的文档。

JavaScript 会自动将基元转换为 String 对象,以便对基元字符串使用 String 对象方法。在对基元字符串调用方法或发生属性查找的上下文中,JavaScript 将自动包装字符串原语并调用该方法或执行属性查找。

这种情况的很好的例子是访问长度属性:

let word = "Hello";
word.length;

我明白在这种情况下发生的事情是:

let word = "Hello";
String(word).length;

但是在尝试了一些基准测试之后,我很清楚word.lengthString(word).length快得多。似乎隐式转换与String(word)完全不同,要快得多。我找不到有关此隐式转换如何工作的任何信息,但是了解某些优化问题可能会有所帮助。

其原因可能是解析时间以及内部 JS 字符串对象(实际上是C++(工作得更快,然后创建额外的接口与高 JS 级别的字符串交互...... 所以一切都与优化有关 有一篇关于它的好文章(https://dev.to/promhize/what-you-need-to-know-about-javascripts-implicit-coercion-e23(。

相关内容

  • 没有找到相关文章

最新更新