首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript Environment

JavaScript运行时

使用React Native时,您将在两种环境中运行JavaScript代码:

  • 在iOS模拟器和设备上,Android模拟器和设备React Native使用JavaScriptCore,它是支持Safari的JavaScript引擎。在iOS上由于iOS应用程序中缺少可写的可执行内存,JSC不使用JIT。
  • 使用Chrome调试时,它会在Chrome本身内运行所有JavaScript代码,并通过WebSocket与本机代码进行通信。所以你正在使用V8

虽然这两种环境非常相似,但最终可能会遇到一些不一致之处。我们很可能会在未来尝试其他JS引擎,所以最好避免依赖任何运行时的细节。

JavaScript语法变形金刚

语法转换器使编写代码更加愉快,让您可以使用新的JavaScript语法,而无需等待所有解释器的支持。

从版本0.5.0开始,React Native随附Babel JavaScript编译器。查看Babel关于其支持的转换的文档以获取更多详细信息。

以下是React Native已启用转换的完整列表。

ES5

  • 保留字:promise.catch(function() { });ES6
  • Classes: class C extends React.Component { render() { return <View />; } }
  • for...of: for (var num of [1, 2, 3]) {}
  • Modules: import React, { Component } from 'react';

ES7

  • Async Functions: async function doStuffAsync() { const foo = await doOtherStuffAsync(); };

Specific

  • JSX: <View style={{color: 'red'}} />
  • Flow: function foo(x: ?number): string {}

Polyfills

许多标准函数也可用于所有支持的JavaScript运行时。

浏览器

  • XMLHttpRequest, fetch
  • {set,clear} {Timeout,Interval,Immediate},{request,cancel} AnimationFrame
  • navigator.geolocation

ES6

ES7

  • __DEV__

扫码关注腾讯云开发者

领取腾讯云代金券