当使用 React Native 时,你将会在两个环境中运行 JavaScript 代码:
在模拟器和电话中:[JavaScriptCore]( http://trac.webkit.org/wiki/JavaScriptCore) 是 JavaScript 的引擎,能够驱动 Safari 和 web 视图。由于在 iOS 应用程序中没有可写的可执行的内存,它不用 JIT 运行。
使用 Chrome 调试时,它在 Chrome 本身中运行所有 JavaScript 代码,并且通过 WebSocket 与 Objective-C 交互。所以你正在使用 [V8]( https://code.google.com/p/v8/)。
虽然两个环境很相似,但是你可能会以触及一些矛盾而结束。将来我们很可能去尝试其他 JS 引擎,所以最好避免依赖任何运行时的细节。
React Native 附带许多 JavaScript 转换,使编写代码更愉快。如果你好奇的话,你可以查看[所有这些转换的实现](https://github.com/facebook/jstransform/tree/master/visitors)。这是完整的列表:
ES5
关键字:promise.catch(function() { });
ES6
箭头函数:<C onPress={() => this.setState({pressed: true})}
调用传播:Math.max(...array);
类:class C extends React.Component { render() { return <View />; } }
解构:var {isActive, style} = this.props;
迭代:for (var element of array) { }
计算属性:var key = "abc"; var obj = {[key]: 10};
对象 Consise 方法:var obj = { method() { return 10; } };
对象 short 表示法:var name = "vjeux"; var obj = { name };
其他参数:function(type, ...args) { }
模板: var who = "world"; var str = "Hello ${who}";
ES7
对象传播:var extended = { ...obj, a: 10 };
Trailing Comma 函数:function f(a, b, c,) { }
jQuery Mobile 页面 开始学习 jQuery Mobile尽管jQuery Mobile兼容所有的移动设备,但是并不能完全兼容PC机(由于有限的CSS3支持...
IOS音频和视频(AudioVideo)简介 音频和视频在最新的设备中颇为常见。 将iosAVFoundation.framework和MediaPlayer.framework添加...
intent是具有其相关联数据的动作。Android使用Intents调用组件。Android中的组件包括activities (UI组件),services服务 (后台代...
Spark SQLJSON数据集Spark SQL能够自动推断JSON数据集的模式,加载它为一个SchemaRDD。这种转换可以通过下面两种方法来实现jsonF...
Spark GraphXPregel API图本身是递归数据结构,顶点的属性依赖于它们邻居的属性,这些邻居的属性又依赖于自己邻居的属性。所以许...
准备开始准备开始在本章,我们要创建一个 Storm 工程和我们的第一个 Storm 拓扑结构。NOTE: 下面假设你的 JRE 版本在 1.6 以上。...
在Neo4j CQL中,我们不能单独使用MATCH或RETURN命令,因此我们应该结合这两个命令从数据库检索数据。 例如:本示例演示如何使用...
有时基于我们的客户端要求,我们需要向现有节点或关系添加或删除属性。 我们使用Neo4j CQL SET子句向现有节点或关系添加新属性。...