JavaScript 환경

React, React Native는 기본적으로 최신 ECMAScript(JavaScript 표준)를 사용합니다. React 개발에 앞서 최신 ECMAScript를 학습해야 합니다. React Native의 JavaScript 환경 문서를 참고하면 앱 개발에 사용되는 최신 JavaScript(ES) 기능을 확인할 수 있습니다.

JavaScript 런타임

React Native를 사용할 때 2가지 환경에서 JavaScript 코드가 실행됩니다.

  • 대부분은 Safari에서 구동하는 JavaScript 엔진인 JavaScriptCore를 사용합니다. iOS에서 JavaScriptCore는 iOS 앱에 쓰기 가능한 실행 가능 메모리가 없어 JIT를 사용하지 않습니다.
  • Chrome 디버깅을 사용하면 모든 JavaScript 코드가 Chrome 내에서 실행되어 웹 소켓을 통해 기본 코드와 통신합니다. Chrome은 V8을 JavaScript 엔진으로 사용합니다.

특정 런타임에 의존하는 코드는 피하세요.

두 환경 모두 매우 유사하지만 일부는 불일치 발생 가능성이 있습니다. 향후 다른 JavaScript 엔진을 실험 할 가능성이 높기 때문에 런타임의 특성에 의존하는 것을 가급적 피하는 것이 좋습니다.

JavaScript 트랜스포머

React Native는 최신 JavaScript 문법을 바로 사용할 수 있도록 내부적으로 Babel 컴파일러를 사용합니다. Babel을 사용해 변환 가능한 목록은 Transform Plugins 문서를 참고해보세요.

React Native에서 사용되는 Babel 프리셋은 metro-react-native-babel-preset 입니다.

ECMAScript 강의

React Native 개발에 앞서 모던 JavaScript 가이드북을 통해 최신 JavaScript에 대해 학습합니다. 오늘 날 JavaScript 프레임 워크는 최신 버전의 JavaScript 프로그래밍을 사용하므로 ES6는 꼭 필요한 선수 학습입니다.

← ES6를 잘 몰라 전체적으로 이해하기 어려웠다는 의견

ES6

ES8

Stage 3

- 객체 전개 연산자 (const extended_o = { ...o, visible: true })

Stage 1

React 전용

  • JSX (<View style={styles.container}> </View>)
  • Flow (const square = (n: number): number => n * n) → TypeScript로 대체할 수 있음.

JavaScript 폴리필

지원되는 모든 JavaScript 런타임에서 많은 표준 기능을 사용할 수 있습니다.

Browser

ES6

ES7

ES8

특수(Specific)

  • __DEV__