javascript正则表达式compile()的工作原理



可能重复:
Javascript:what';RegExp.compile()的意义何在?

Javascript据说是一种解释语言,那么编译方法实际上是如何为正则表达式工作的。它是真的编译了模式,还是只是滥用了符号。

Javascript确实是一种解释语言,但所有浏览器对Javascript的处理方式不同。例如,Google Chrome在第一次执行JS代码时就花了很大的力气;底层的V8引擎将JS转换为机器代码,以提高Gmail等大型网络应用程序的性能。

因此,Chrome编译所有JS代码,而不仅仅是正则表达式,也许有人会说这是对符号的滥用。

Mozilla文档说Firefox使用正则表达式的编译,但SpiderMonkey/TraceMonkey是一个生成字节码的JIT编译器。

我还没有找到关于Internet Explorer如何处理事情的信息,我认为一切都有一点点,这取决于版本号。

真正有趣的问题是:你为什么需要这条信息?如果你想优化你的Javascript代码,我建议在你想要支持的所有浏览器中测试不同的方法,并最终使用性能最好的方法。这应该比试图理解不同版本的内部浏览器功能更进一步。

最新更新