JavaScript 環(huán)境

2019-08-14 14:26 更新

JavaScript 運行時間

當使用 React Native 時,你將會在兩個環(huán)境中運行 JavaScript 代碼:

  • 在模擬器和電話中:[JavaScriptCore]( http://trac.webkit.org/wiki/JavaScriptCore) 是 JavaScript 的引擎,能夠驅動 Safari 和 web 視圖。由于在 iOS 應用程序中沒有可寫的可執(zhí)行的內(nèi)存,它不用 JIT 運行。

  • 使用 Chrome 調(diào)試時,它在 Chrome 本身中運行所有 JavaScript 代碼,并且通過 WebSocket 與 Objective-C 交互。所以你正在使用 [V8]( https://code.google.com/p/v8/)。

雖然兩個環(huán)境很相似,但是你可能會以觸及一些矛盾而結束。將來我們很可能去嘗試其他 JS 引擎,所以最好避免依賴任何運行時的細節(jié)。

JavaScript 轉換

React Native 附帶許多 JavaScript 轉換,使編寫代碼更愉快。如果你好奇的話,你可以查看[所有這些轉換的實現(xiàn)](https://github.com/facebook/jstransform/tree/master/visitors)。這是完整的列表

ES5

  • 關鍵字:promise.catch(function() { });

ES6

  • 箭頭函數(shù):<C onPress={() => this.setState({pressed: true})}

  • 調(diào)用傳播: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 };

  • 其他參數(shù):function(type, ...args) { }

  • 模板: var who = 'world'; var str = 'Hello ${who}';

ES7

  • 對象傳播:var extended = { ...obj, a: 10 };

  • Trailing Comma 函數(shù):function f(a, b, c,) { }


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號