What is the JavaScript engine in React Native? Compare Hermes, JSC, and V8.
React Native runs your JavaScript inside an engine on the device. The choice of engine affects startup time, memory, bundle size, and debugging.
Hermes (default since RN 0.70):
Built by Meta specifically for React Native on mobile.
Precompiles JS to bytecode at build time → drastically faster app startup (no parse cost at launch).
Lower memory footprint, smaller APK/IPA size, garbage collector tuned for mobile.
Built-in sampling profiler and source-map support for Chrome DevTools.
JavaScriptCore (JSC) — legacy fallback:
Apple's JS engine bundled with WebKit; was the RN default before 0.70.
On iOS, JSC is provided by the OS (no extra binary cost); on Android, RN had to bundle it (larger APK).
Slower startup than Hermes (no bytecode precompilation).
V8 — NOT a stock option:
V8 is the Chrome/Node.js engine — not a built-in RN engine.
Some teams used
react-native-v8historically for parity with Node; rare in 2026.
The wrong answer is 'V8' — V8 is the Chrome / Node engine and is NOT used in React Native. Hermes has been the default since RN 0.70 (2022) and is what 95%+ of production apps run today. Mention its three big wins: bytecode-precompiled bundles (faster startup), smaller memory footprint, and built-in sampling profiler. JSC still ships as the fallback on iOS for very old projects.