export const meta = {
  title: `JavaScript Prerequisites before React`,
  contributors: [{name: 'Hiro Nishimura'}],
}

import ProseSection from '@/components/mdx/prose-section'
import Callout from '@/components/mdx/callout'
import Course from '@/components/mdx/course'
import FancyGuideLayout from '@/layouts/fancy-guide'
export default ({children}) => (
  <FancyGuideLayout meta={meta}>{children}</FancyGuideLayout>
)

<ProseSection>

While we don’t believe you need to be a JavaScript Master (™) in order to begin learning about React, it will benefit you to have the core JavaScript concepts and syntax under your belt before embarking on your React journey.

Anything you do with React, you can do with “vanilla” JavaScript. This is because React is a JavaScript framework. To learn more about the relationship between JavaScript and React, we recommend that you check out our [Introduction to React](/learn/react/beginners/wtf-is-react).

You should also be fairly comfortable with HTML and CSS before you start, as you’ll be building on those skills along with JavaScript fundamentals when you begin coding in React.

## JavaScript Fundamentals Checklist

- [The Real Introduction to JavaScript]()
  - JavaScript is a programming language that is written using “scripts,” and can be written directly into the website HTML. It is loaded automatically when the website is loaded in the browser, and its major purpose is to enhance user interaction on a website.
- ECMAScript 6 (ES6)
  - ES6 (aka: ECMAScript 6, JavaScript 6, or ECMAScript 2015) is the “6th version” of JavaScript, released in 2015. Some notable features include the addition of Constants, Block-Scoped Variables and Functions, Arrow Functions, and Default Function Parameters, amongst others.
- JavaScript Syntax Fundamentals
  - Arrays, Objects
  - Data Types (string, number, boolean, null, undefined, array, object)
  - Spread Operator
  - Destructuring
  - Ternary Operator
- [The Document Object Model (DOM)](/learn/javascript/the-dom)

## Modern JavaScript Essentials for React

Sometimes, when you don’t come in with extensive background in JavaScript development, you might get a little confused on what part of “React” you’re writing or using is React, and what part is actually just vanilla JavaScript.

</ProseSection>
