Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中,正则表达式是否在编译代码中计算?_Javascript_Regex - Fatal编程技术网

在JavaScript中,正则表达式是否在编译代码中计算?

在JavaScript中,正则表达式是否在编译代码中计算?,javascript,regex,Javascript,Regex,当正则表达式运行JavaScript时,计算表达式的正则表达式引擎是否编译了代码?或者引擎本身是用javascript编写的 在进行一些基本的字符串匹配测试时,我发现单个正则表达式比执行相同操作的JavaScript函数要快得多,所以我想知道为什么正则表达式更快 附言:我对正则表达式一无所知。这取决于实现,但我知道的每个实现(如Gecko、Trident)都是在编译代码中实现的。至于实现是否使用本机代码,则取决于js引擎 不过,您可以影响javascript代码的速度 如果您使用的是javasc

当正则表达式运行JavaScript时,计算表达式的正则表达式引擎是否编译了代码?或者引擎本身是用javascript编写的

在进行一些基本的字符串匹配测试时,我发现单个正则表达式比执行相同操作的JavaScript函数要快得多,所以我想知道为什么正则表达式更快


附言:我对正则表达式一无所知。

这取决于实现,但我知道的每个实现(如Gecko、Trident)都是在编译代码中实现的。

至于实现是否使用本机代码,则取决于js引擎

不过,您可以影响javascript代码的速度


如果您使用的是javascript正则表达式语法,使用的是
/myregexhere/
语法,则每次执行代码时都会编译正则表达式。如果在Javascript中使用RegEx对象,则可以编译正则表达式,并在多次使用相同模式时获得更好的性能。

还应编译/myregexhere/语法。如果它存储在变量中,则会再次执行和编译。