JSRUN 用代码说话

JavaScript环境

编辑教程

在使用React Native时,你的JavaScript代码将会运行在两个不同的环境上:

  • 在iOS、Android的模拟器或是真机上,React Native使用的是JavaScriptCore,也就是Safari所使用的JavaScript引擎。但是在iOS上JavaScriptCore并没有使用即时编译技术(JIT),因为在iOS中应用无权拥有可写可执行的内存页(因而无法动态生成代码)。
  • 在使用Chrome调试时,所有的JavaScript代码都运行在Chrome中,并且通过WebSocket与原生代码通信。此时的运行环境是V8引擎

虽然两个环境非常类似,但开发者还是可能碰到一些不一致的地方。未来我们很可能会尝试一些其他的JS引擎,所以请尽量避免使用依赖于特定运行环境的代码。

JavaScript语法转换器

语法转换器可以使编写代码的过程更加享受,因为开发者可以借助转换器直接使用新的JavaScirpt语法标准,而无需等待JS解释器的支持。

React Native从0.5.0版本开始已经内置Babel转换器。你可以查看Babel的文档来了解有关它可以转换的语法的详情。

这里可以看到目前React Native默认开启的语法转换特性
注:若想学习相关语法,译者推荐阮一峰老师的《ECMAScript 6入门》以及论坛的讨论帖

ES5

  • 保留关键字: promise.catch(function() { });

ES6

ES7

其他特性

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

接口兼容(Polyfills)

许多标准功能也都在支持的JavaScript运行环境上做了兼容支持。

浏览器

ES6

ES7

其他特性

  • __DEV__
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟