在使用 React Native 时,我们用到两个不同的js引擎
JS引擎
- 在iOS、Android的模拟器或是真机上,React Native使用的是JavaScriptCore,也就是Safari所使用的JavaScript引擎。但是在iOS上JavaScriptCore并没有使用即时编译技术(JIT),因为在iOS中应用无权拥有可写可执行的内存页(因而无法动态生成代码)。
- 在使用Chrome调试时,所有的JavaScript代码都运行在Chrome中,并且通过WebSocket与原生代码通信。此时的运行环境是V8引擎。
开发实践中,有些代码在debug上好用(使用Chrome调试),但是在release模式中会失效,可能是不同js引擎对代码的执行解析是不一样导致的。
所以在开发中还是需要仔细的规范代码的书写。